1 |
|
2 |
|
3 | import assert from 'assert';
|
4 | import {DefaultMap} from '../src/DefaultMap';
|
5 |
|
6 | describe('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 | });
|