UNPKG

1.01 kBJavaScriptView Raw
1// @flow strict-local
2
3import assert from 'assert';
4import {DefaultMap} from '../src/DefaultMap';
5
6describe('DefaultMap', () => {
7 it('constructs with entries just like Map', () => {
8 let map = new DefaultMap(k => k, [
9 [1, 3],
10 [2, 27],
11 ]);
12 assert.equal(map.get(1), 3);
13 assert.deepEqual(Array.from(map.entries()), [
14 [1, 3],
15 [2, 27],
16 ]);
17 });
18
19 it("returns a default value based on a key if it doesn't exist", () => {
20 let map = new DefaultMap(k => k);
21 assert.equal(map.get(3), 3);
22 });
23
24 it("sets a default value based on a key if it doesn't exist", () => {
25 let map = new DefaultMap(k => k);
26 map.get(3);
27 assert.deepEqual(Array.from(map.entries()), [[3, 3]]);
28 });
29
30 it('respects undefined/null if it already existed in the map', () => {
31 let map = new DefaultMap<number, number | void | null>(k => k);
32 map.set(3, undefined);
33 assert.equal(map.get(3), undefined);
34
35 map.set(4, null);
36 assert.equal(map.get(4), null);
37 });
38});