@heliosgraphics/utils 6.0.0-alpha.10 → 6.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/classnames.ts +35 -12
- package/clipboard.ts +7 -3
- package/colors.ts +14 -7
- package/debounce.ts +21 -7
- package/equals.ts +22 -42
- package/index.ts +1 -1
- package/package.json +22 -4
- package/sanitize.ts +1 -1
- package/strings.ts +1 -1
- package/throttle.ts +16 -5
- package/uuid.ts +6 -7
- package/validations.ts +1 -1
- package/classnames.spec.ts +0 -17
- package/clipboard.spec.ts +0 -40
- package/colors.spec.ts +0 -40
- package/debounce.spec.ts +0 -101
- package/equals.spec.ts +0 -168
- package/sanitize.spec.ts +0 -558
- package/sleep.spec.ts +0 -59
- package/slug.spec.ts +0 -15
- package/strings.spec.ts +0 -77
- package/throttle.spec.ts +0 -142
- package/tsconfig.json +0 -40
- package/uuid.spec.ts +0 -32
- package/validations.spec.ts +0 -26
package/equals.spec.ts
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { getIsEqual, getAreSetsEqual } from "./equals"
|
|
2
|
-
import { describe, it, expect } from "vitest"
|
|
3
|
-
|
|
4
|
-
describe("getIsEqual", () => {
|
|
5
|
-
it("primitives", () => {
|
|
6
|
-
expect(getIsEqual(1, 1)).toBe(true)
|
|
7
|
-
expect(getIsEqual("hello", "hello")).toBe(true)
|
|
8
|
-
expect(getIsEqual(" ", " ")).toBe(true)
|
|
9
|
-
expect(getIsEqual("❤️", "❤️")).toBe(true)
|
|
10
|
-
expect(getIsEqual(true, true)).toBe(true)
|
|
11
|
-
expect(getIsEqual(null, null)).toBe(true)
|
|
12
|
-
expect(getIsEqual(undefined, undefined)).toBe(true)
|
|
13
|
-
expect(getIsEqual(1, 2)).toBe(false)
|
|
14
|
-
expect(getIsEqual("hello", "world")).toBe(false)
|
|
15
|
-
expect(getIsEqual(true, false)).toBe(false)
|
|
16
|
-
expect(getIsEqual(null, undefined)).toBe(false)
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
it("arrays", () => {
|
|
20
|
-
expect(getIsEqual([], [])).toBe(true)
|
|
21
|
-
expect(getIsEqual([1, 2, 3], [1, 2, 3])).toBe(true)
|
|
22
|
-
expect(getIsEqual([1, [2, 3]], [1, [2, 3]])).toBe(true)
|
|
23
|
-
expect(getIsEqual([1, 2], [1, 2, 3])).toBe(false)
|
|
24
|
-
expect(getIsEqual([1, 2, 3], [1, 3, 2])).toBe(false)
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
it("objects", () => {
|
|
28
|
-
expect(getIsEqual({}, {})).toBe(true)
|
|
29
|
-
expect(getIsEqual({ a: 1, b: 2 }, { a: 1, b: 2 })).toBe(true)
|
|
30
|
-
expect(getIsEqual({ a: { b: 2 } }, { a: { b: 2 } })).toBe(true)
|
|
31
|
-
expect(getIsEqual({ a: 1, b: 2 }, { b: 2, a: 1 })).toBe(true)
|
|
32
|
-
expect(getIsEqual({ a: 1 }, { a: 1, b: 2 })).toBe(false)
|
|
33
|
-
expect(getIsEqual({ a: 1 }, { a: 2 })).toBe(false)
|
|
34
|
-
|
|
35
|
-
const object1 = { a: 1, b: 2 }
|
|
36
|
-
expect(getIsEqual(object1, null)).toBeFalsy()
|
|
37
|
-
expect(getIsEqual(null, object1)).toBeFalsy()
|
|
38
|
-
expect(getIsEqual(undefined, undefined)).toBeTruthy()
|
|
39
|
-
|
|
40
|
-
const object3 = { a: 1, b: 2 }
|
|
41
|
-
const object4 = { b: 2, a: 1 }
|
|
42
|
-
expect(getIsEqual(object3, object4)).toBeTruthy()
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
it("dates", () => {
|
|
46
|
-
const date1 = new Date("2024-01-01")
|
|
47
|
-
const date2 = new Date("2024-01-01")
|
|
48
|
-
const date3 = new Date("2024-01-02")
|
|
49
|
-
|
|
50
|
-
expect(getIsEqual(date1, date2)).toBe(true)
|
|
51
|
-
expect(getIsEqual(date1, date3)).toBe(false)
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
it("sets", () => {
|
|
55
|
-
const basicSet1 = new Set(["hello", 2, 3])
|
|
56
|
-
const basicSet2 = new Set(["hello", 2, 3])
|
|
57
|
-
const basicSet3 = new Set(["hello", 2, "3"])
|
|
58
|
-
|
|
59
|
-
expect(getIsEqual(basicSet1, basicSet2)).toBe(true)
|
|
60
|
-
expect(getIsEqual(basicSet1, basicSet3)).toBe(false)
|
|
61
|
-
|
|
62
|
-
const objectSet1 = new Set([{ a: 1 }, { b: 2 }])
|
|
63
|
-
const objectSet2 = new Set([{ a: 1 }, { b: 2 }])
|
|
64
|
-
const objectSet3 = new Set([{ a: 1 }, { b: 3 }])
|
|
65
|
-
|
|
66
|
-
expect(getAreSetsEqual(objectSet1, objectSet2)).toBe(true)
|
|
67
|
-
expect(getAreSetsEqual(objectSet1, objectSet3)).toBe(false)
|
|
68
|
-
|
|
69
|
-
const nestedSet1 = new Set([{ a: { b: 2 } }, [1, 2, 3]])
|
|
70
|
-
const nestedSet2 = new Set([{ a: { b: 2 } }, [1, 2, 3]])
|
|
71
|
-
const nestedSet3 = new Set([{ a: { b: 3 } }, [1, 2, 3]])
|
|
72
|
-
|
|
73
|
-
expect(getAreSetsEqual(nestedSet1, nestedSet2)).toBe(true)
|
|
74
|
-
expect(getAreSetsEqual(nestedSet1, nestedSet3)).toBe(false)
|
|
75
|
-
|
|
76
|
-
const emptySet1 = new Set()
|
|
77
|
-
const emptySet2 = new Set()
|
|
78
|
-
|
|
79
|
-
expect(getAreSetsEqual(emptySet1, emptySet2)).toBe(true)
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
it("maps", () => {
|
|
83
|
-
const map1 = new Map([
|
|
84
|
-
["a", 1],
|
|
85
|
-
["b", 2],
|
|
86
|
-
])
|
|
87
|
-
const map2 = new Map([
|
|
88
|
-
["a", 1],
|
|
89
|
-
["b", 2],
|
|
90
|
-
])
|
|
91
|
-
const map3 = new Map([
|
|
92
|
-
["a", 1],
|
|
93
|
-
["b", 3],
|
|
94
|
-
])
|
|
95
|
-
|
|
96
|
-
expect(getIsEqual(map1, map2)).toBe(true)
|
|
97
|
-
expect(getIsEqual(map1, map3)).toBe(false)
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
it("circular references", () => {
|
|
101
|
-
const obj1: Record<string, unknown> = { a: 1 }
|
|
102
|
-
const obj2: Record<string, unknown> = { a: 1 }
|
|
103
|
-
|
|
104
|
-
obj1["self"] = obj1
|
|
105
|
-
obj2["self"] = obj2
|
|
106
|
-
|
|
107
|
-
expect(getIsEqual(obj1, obj2)).toBe(true)
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
it("circular arrays", () => {
|
|
111
|
-
const arr1: Array<unknown> = [1]
|
|
112
|
-
const arr2: Array<unknown> = [1]
|
|
113
|
-
arr1.push(arr1)
|
|
114
|
-
arr2.push(arr2)
|
|
115
|
-
expect(getIsEqual(arr1, arr2)).toBe(true)
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
it("symbols are unique", () => {
|
|
119
|
-
const symbol1 = Symbol("foo")
|
|
120
|
-
const symbol2 = Symbol("foo")
|
|
121
|
-
|
|
122
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
-
expect(getIsEqual(symbol1, symbol2 as any)).toBe(false)
|
|
124
|
-
})
|
|
125
|
-
|
|
126
|
-
it("bigint", () => {
|
|
127
|
-
expect(getIsEqual(42n, 42n)).toBe(true)
|
|
128
|
-
expect(getIsEqual(42n, 43n)).toBe(false)
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
it("regexps", () => {
|
|
132
|
-
const regex1 = /hello/gi
|
|
133
|
-
const regex2 = /hello/gi
|
|
134
|
-
const regex3 = /world/gi
|
|
135
|
-
|
|
136
|
-
expect(getIsEqual(regex1, regex2)).toBe(true)
|
|
137
|
-
expect(getIsEqual(regex1, regex3)).toBe(false)
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
it("errors", () => {
|
|
141
|
-
const error1 = new Error("test message")
|
|
142
|
-
const error2 = new Error("test message")
|
|
143
|
-
const error3 = new Error("different message")
|
|
144
|
-
|
|
145
|
-
// Errors with same message but different stack traces are not equal
|
|
146
|
-
expect(getIsEqual(error1, error2)).toBe(false)
|
|
147
|
-
expect(getIsEqual(error1, error3)).toBe(false)
|
|
148
|
-
|
|
149
|
-
// Same error instance is equal to itself
|
|
150
|
-
expect(getIsEqual(error1, error1)).toBe(true)
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
it("buffers", () => {
|
|
154
|
-
const buffer1 = Buffer.from("hello")
|
|
155
|
-
const buffer2 = Buffer.from("hello")
|
|
156
|
-
const buffer3 = Buffer.from("world")
|
|
157
|
-
|
|
158
|
-
expect(getIsEqual(buffer1, buffer2)).toBe(true)
|
|
159
|
-
expect(getIsEqual(buffer1, buffer3)).toBe(false)
|
|
160
|
-
})
|
|
161
|
-
|
|
162
|
-
it("duplicate array check branch", () => {
|
|
163
|
-
const arr1 = [1, 2, 3]
|
|
164
|
-
const arr2 = [1, 2, 3]
|
|
165
|
-
|
|
166
|
-
expect(getIsEqual(arr1, arr2)).toBe(true)
|
|
167
|
-
})
|
|
168
|
-
})
|