-
Notifications
You must be signed in to change notification settings - Fork 6
/
watches.test.ts
82 lines (75 loc) · 1.84 KB
/
watches.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
import { assertEquals } from "@std/assert/equals";
import { addWatch, deleteWatch } from "./watches.ts";
Deno.test({
name: "addWatch - add new key",
fn() {
const actual = addWatch("abcdefg", {
key: [{ type: "string", value: "a" }],
}, {
a1234: { keys: [["a"]] },
});
assertEquals(actual, {
a1234: { keys: [["a"]] },
abcdefg: { keys: [["a"]], name: undefined, href: undefined },
});
},
});
Deno.test({
name: "addWatch - push existing key",
fn() {
const actual = addWatch("abcdefg", {
key: [{ type: "string", value: "b" }],
}, {
abcdefg: { keys: [["a"]] },
});
assertEquals(actual, {
abcdefg: { keys: [["a"], ["b"]], href: undefined, name: undefined },
});
},
});
Deno.test({
name: "addWatch - already existing",
fn() {
const actual = addWatch("abcdefg", {
key: [{ type: "string", value: "a" }],
}, {
abcdefg: { keys: [["a"]] },
});
assertEquals(actual, {
abcdefg: { keys: [["a"]], name: undefined, href: undefined },
});
},
});
Deno.test({
name: "deleteWatch",
fn() {
const actual = deleteWatch("abcdefg", [{ type: "string", value: "b" }], {
abcdefg: { keys: [["a"], ["b", "c"], ["b"], ["d"]] },
});
assertEquals(actual, {
abcdefg: { keys: [["a"], ["b", "c"], ["d"]] },
});
},
});
Deno.test({
name: "deleteWatch - non existent element",
fn() {
const actual = deleteWatch("abcdef", [{ type: "string", value: "b" }], {
abcdefg: { keys: [["a"]] },
});
assertEquals(actual, {
abcdefg: { keys: [["a"]] },
});
},
});
Deno.test({
name: "deleteWatch - non existent key",
fn() {
const actual = deleteWatch("a1234", [{ type: "string", value: "b" }], {
abcdefg: { keys: [["a"]] },
});
assertEquals(actual, {
abcdefg: { keys: [["a"]] },
});
},
});