deno.land / x / solid_signals@solid-signals@1.3.7 / src / signals / composable / createObject / createObject.test.ts

createObject.test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import { createRoot } from "solid-js";import { suite } from "uvu";import * as assert from "uvu/assert";import createHistory from "../createHistory";import createObject from "./createObject";
const test = suite("createObject");
test("Creates object signal", () => { createRoot((dispose) => { const [object, setObject] = createObject({ a: "a" });
assert.equal(object(), { a: "a" });
dispose(); });});
test("Preserve Solid setter", () => { createRoot((dispose) => { const [object, setObject] = createObject({ a: "a" });
setObject({ a: "a1" }); assert.equal(object(), { a: "a1" });
setObject(({ a }) => ({ a: `${a}2`, })); assert.equal(object(), { a: "a12" });
dispose(); });});
test("update: Shallow merges state with updates", () => { createRoot((dispose) => { const [object, setObject] = createObject({ a: "a", b: "b" });
const res = setObject.update({ a: "a1", }); assert.equal(object(), { a: "a1", b: "b" }); // Returns new state assert.is(res, object());
setObject.update({ b: "b1", }); assert.equal(object(), { a: "a1", b: "b1" });
setObject.update({ a: "a2", b: "b2", }); assert.equal(object(), { a: "a2", b: "b2" });
setObject.update(({ a }) => ({ a: `${a}3` })); assert.equal(object(), { a: "a23", b: "b2" });
dispose(); });});
test("Extends other signals (createHistory)", () => { createRoot((dispose) => { const [object, setObject] = createObject.wrap(createHistory({ a: "a" }));
setObject.update({ a: "a1" }); setObject.update({ a: "a2" }); setObject.update({ a: "a3" }); assert.equal(object(), { a: "a3" }); assert.equal(object.history(), [ { a: "a" }, { a: "a1" }, { a: "a2" }, { a: "a3" }, ]); assert.equal(object.history.forward(), []);
assert.is(setObject.history.back(), true); assert.equal(object(), { a: "a2" }); assert.equal(object.history(), [{ a: "a" }, { a: "a1" }, { a: "a2" }]); assert.equal(object.history.forward(), [{ a: "a3" }]);
assert.is(setObject.history.back(), true); assert.is(setObject.history.back(), true); assert.equal(object(), { a: "a" }); assert.equal(object.history(), [{ a: "a" }]); assert.equal(object.history.forward(), [ { a: "a1" }, { a: "a2" }, { a: "a3" }, ]);
assert.is(setObject.history.back(), false);
assert.is(setObject.history.forward(), true); assert.equal(object(), { a: "a1" }); assert.equal(object.history(), [{ a: "a" }, { a: "a1" }]); assert.equal(object.history.forward(), [{ a: "a2" }, { a: "a3" }]);
assert.is(setObject.history.forward(), true); assert.is(setObject.history.forward(), true); assert.equal(object(), { a: "a3" }); assert.equal(object.history(), [ { a: "a" }, { a: "a1" }, { a: "a2" }, { a: "a3" }, ]); assert.equal(object.history.forward(), []);
assert.is(setObject.history.forward(), false);
dispose(); });});
test.run();
solid_signals

Version Info

Tagged at
2 years ago