deno.land / x / solid@v1.5.6 / test / observable.spec.ts

observable.spec.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
import { createRoot, createSignal, from, observable } from "../src";
describe("Observable operator", () => { test("to observable", () => { let out: string; let set: (v: string) => void; createRoot(() => { const [s, _set] = createSignal("Hi"), obsv$ = observable(s);
set = _set; obsv$.subscribe({ next: v => (out = v) }); }); expect(out!).toBe("Hi"); set!("John"); expect(out!).toBe("John"); });
test("preserve the observer's next binding", () => { const observer = { next: jest.fn().mockReturnThis() };
createRoot(() => { const [s] = createSignal("Hi"), obsv$ = observable(s);
obsv$.subscribe(observer); }); expect(observer.next).toHaveReturnedWith(observer); });
test("observable throws TypeError on non-object", () => { const [s, _set] = createSignal("Hi"); const o = observable(s); expect(() => o.subscribe(null as any)).toThrow(TypeError); });
test("observable unsubscribe", () => { const [s, set] = createSignal("Hi"); const o = observable(s); let out: string; let subscription: any; createRoot(() => { subscription = o.subscribe({ next(v) { out = v; } }); }); set("John"); expect(out!).toBe("John"); subscription.unsubscribe(); set("Benjamin"); expect(out!).toBe("John"); });});
describe("from transform", () => { test("from subscribable", async () => { let out: () => string | undefined; let set: (v: string) => void; createRoot(() => { const [s, _set] = createSignal("Hi"), obsv$ = observable(s);
set = _set; out = from(obsv$); }); expect(out!()).toBe("Hi"); set!("John"); expect(out!()).toBe("John"); });
test("from producer", async () => { let out: () => string | undefined; let set: (v: string) => void; createRoot(() => { const [s, _set] = createSignal("Hi"), obsv$ = observable(s);
set = _set; out = from(set => { const sub = obsv$.subscribe(set); return () => sub.unsubscribe(); }); }); expect(out!()).toBe("Hi"); set!("John"); expect(out!()).toBe("John"); });});
solid

Version Info

Tagged at
a year ago