Skip to content

Commit 32db5d3

Browse files
committed
fix example bugs
1 parent a21bc67 commit 32db5d3

File tree

2 files changed

+67
-4
lines changed

2 files changed

+67
-4
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ set.add({ id: '1', value: 1 });
2424
set.add({ id: '2', value: 2 });
2525
set.add({ id: '1', value: 3 });
2626

27-
console.log(set.toArray()); // [{ id: '1', value: 3 }, { id: '2', value: 2 }
27+
console.log(set.toArray()); // [{ id: '1', value: 3 }, { id: '2', value: 2 }]
2828
```
2929

3030
2. change identifier of element
@@ -45,7 +45,7 @@ set.add({ key: '1', value: 1 });
4545
set.add({ key: '2', value: 2 });
4646
set.add({ key: '1', value: 3 });
4747

48-
console.log(set.toArray()); // [{ key: '1', value: 3 }, { key: '2', value: 2 }
48+
console.log(set.toArray()); // [{ key: '1', value: 3 }, { key: '2', value: 2 }]
4949
```
5050

5151
3. custom refresh method
@@ -60,15 +60,16 @@ type Element = {
6060
const set = new RefreshSet<Element>({
6161
policy: RefreshPolicy.MERGER,
6262
merger: (oldElement, newElement) => {
63-
newElement.value = oldElement.value + 1;
63+
newElement.value = oldElement.value + newElement.value;
64+
return newElement;
6465
},
6566
});
6667

6768
set.add({ id: '1', value: 1 });
6869
set.add({ id: '2', value: 2 });
6970
set.add({ id: '1', value: 3 });
7071

71-
console.log(set.toArray()); // [{ id: '1', value: 4 }, { id: '2', value: 2 }
72+
console.log(set.toArray()); // [{ id: '1', value: 4 }, { id: '2', value: 2 }]
7273
```
7374

7475
## contributing

tests/example.test.ts

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import { RefreshPolicy, RefreshSet } from "../src";
2+
3+
describe("testExample1", () => {
4+
5+
type Element = {
6+
id: string;
7+
value: number;
8+
};
9+
10+
const set = new RefreshSet<Element>();
11+
12+
set.add({ id: '1', value: 1 });
13+
set.add({ id: '2', value: 2 });
14+
set.add({ id: '1', value: 3 });
15+
16+
it('example 1 must be pass', () => {
17+
expect(set.toArray()).toEqual([{ id: '1', value: 3 }, { id: '2', value: 2 }]);
18+
});
19+
});
20+
21+
describe("testExample2", () => {
22+
type Element = {
23+
key: string;
24+
value: number;
25+
};
26+
27+
// default id supplier is element.id
28+
const set = new RefreshSet<Element>({
29+
idSupplier: (element) => element.key,
30+
});
31+
32+
set.add({ key: '1', value: 1 });
33+
set.add({ key: '2', value: 2 });
34+
set.add({ key: '1', value: 3 });
35+
36+
it('example 2 must be pass', () => {
37+
expect(set.toArray()).toEqual([{ key: '1', value: 3 }, { key: '2', value: 2 }]);
38+
});
39+
});
40+
41+
describe("testExample3", () => {
42+
type Element = {
43+
id: string;
44+
value: number;
45+
};
46+
47+
const set = new RefreshSet<Element>({
48+
policy: RefreshPolicy.MERGER,
49+
merger: (oldElement, newElement) => {
50+
newElement.value = oldElement.value + newElement.value;
51+
return newElement;
52+
},
53+
});
54+
55+
set.add({ id: '1', value: 1 });
56+
set.add({ id: '2', value: 2 });
57+
set.add({ id: '1', value: 3 });
58+
59+
it('example 3 must be pass', () => {
60+
expect(set.toArray()).toEqual([{ id: '1', value: 4 }, { id: '2', value: 2 }]);
61+
});
62+
});

0 commit comments

Comments
 (0)