@nativerent/js-utils 1.0.0 → 1.0.1

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/tests/tests.ts ADDED
@@ -0,0 +1,224 @@
1
+ import {
2
+ arrayDiff,
3
+ debounce,
4
+ isBool,
5
+ isDefined,
6
+ isFn,
7
+ isNum,
8
+ isObject,
9
+ isStr,
10
+ isString,
11
+ isUndef,
12
+ objectHasProp,
13
+ objectToQueryString,
14
+ parseURL,
15
+ } from "../src";
16
+
17
+ test.each([
18
+ [
19
+ [1, 2, 3],
20
+ [4, 5, 6],
21
+ [1, 2, 3, 4, 5, 6],
22
+ ],
23
+ [
24
+ ["q", "w", "e", "r", "t", "y"],
25
+ ["w", "q", "r"],
26
+ ["e", "t", "y"],
27
+ ],
28
+ [
29
+ ["multi dimensional array", "t", "e", "y"],
30
+ ["e", "t", "multi dimensional array", "y"],
31
+ [],
32
+ ],
33
+ [
34
+ [true, false, false, true, 1, 0],
35
+ [true, true, false, 0, false, 0, false, false],
36
+ [1],
37
+ ],
38
+ [
39
+ [null, false, "657", "#000"],
40
+ ["black", undefined, 0, false, 657, null],
41
+ ["657", "#000", "black", undefined, 0, 657],
42
+ ],
43
+ ])("arrayDiff", (arr1, arr2, expected) => {
44
+ expect(arrayDiff(arr1, arr2)).toEqual(expected);
45
+ });
46
+
47
+ test.each([
48
+ [{ d: "d" }, true],
49
+ [["d"], false],
50
+ [null, false],
51
+ [undefined, false],
52
+ [0, false],
53
+ [NaN, false],
54
+ ["str", false],
55
+ [120, false],
56
+ [Symbol("s"), false],
57
+ [false, false],
58
+ [true, false],
59
+ ])("isObject", (val, expected) => {
60
+ expect(isObject(val)).toBe(expected);
61
+ });
62
+
63
+ test.each([
64
+ [{ d: "d" }, false],
65
+ [["d"], false],
66
+ [null, false],
67
+ [undefined, false],
68
+ [0, false],
69
+ [() => "g", true],
70
+ [NaN, false],
71
+ ["str", false],
72
+ [120, false],
73
+ [Symbol("s"), false],
74
+ [function () {}, true],
75
+ [false, false],
76
+ [true, false],
77
+ ])("isFn", (val, expected) => {
78
+ expect(isFn(val)).toBe(expected);
79
+ });
80
+
81
+ test.each([
82
+ [{ d: "d" }, false],
83
+ [["d"], false],
84
+ [null, false],
85
+ [undefined, false],
86
+ [0, false],
87
+ [() => "g", false],
88
+ [NaN, false],
89
+ ["str", true],
90
+ [120, false],
91
+ [Symbol("s"), false],
92
+ [function () {}, false],
93
+ [false, false],
94
+ [true, false],
95
+ ["false", true],
96
+ ["true", true],
97
+ ["1", true],
98
+ ])("isStr", (val, expected) => {
99
+ expect(isStr(val)).toBe(expected);
100
+ });
101
+
102
+ test.each([
103
+ [{ d: "d" }, false],
104
+ [["d"], false],
105
+ [null, false],
106
+ [undefined, false],
107
+ [0, false],
108
+ [() => "g", false],
109
+ [NaN, false],
110
+ ["str", true],
111
+ [120, false],
112
+ [Symbol("s"), false],
113
+ [function () {}, false],
114
+ [false, false],
115
+ [true, false],
116
+ ["false", true],
117
+ ["true", true],
118
+ ["1", true],
119
+ ])("isString", (val, expected) => {
120
+ expect(isString(val)).toBe(expected);
121
+ });
122
+
123
+ test.each([
124
+ [{ d: "d" }, false],
125
+ [["d"], false],
126
+ [null, false],
127
+ [undefined, false],
128
+ [0, true],
129
+ [() => "g", false],
130
+ [NaN, true],
131
+ ["str", false],
132
+ [120, true],
133
+ [Symbol("s"), false],
134
+ [function () {}, false],
135
+ [false, false],
136
+ [true, false],
137
+ ["1", false],
138
+ ])("isNum", (val, expected) => {
139
+ expect(isNum(val)).toBe(expected);
140
+ });
141
+
142
+ test.each([
143
+ [{ d: "d" }, false],
144
+ [["d"], false],
145
+ [null, false],
146
+ [undefined, false],
147
+ [0, false],
148
+ [() => "g", false],
149
+ [NaN, false],
150
+ ["str", false],
151
+ [120, false],
152
+ [Symbol("s"), false],
153
+ [function () {}, false],
154
+ [false, true],
155
+ [true, true],
156
+ ["1", false],
157
+ ])("isBool", (val, expected) => {
158
+ expect(isBool(val)).toBe(expected);
159
+ });
160
+
161
+ test.each([
162
+ [{ d: "d" }, false],
163
+ [["d"], false],
164
+ [null, false],
165
+ [undefined, true],
166
+ [0, false],
167
+ [() => "g", false],
168
+ [NaN, false],
169
+ ["str", false],
170
+ [120, false],
171
+ [Symbol("s"), false],
172
+ [function () {}, false],
173
+ [false, false],
174
+ [true, false],
175
+ ["1", false],
176
+ ])("isUndef", (val, expected) => {
177
+ expect(isUndef(val)).toBe(expected);
178
+ });
179
+
180
+ test.each([
181
+ [{ d: "d" }, true],
182
+ [["d"], true],
183
+ [null, true],
184
+ [undefined, false],
185
+ [0, true],
186
+ [() => "g", true],
187
+ [NaN, true],
188
+ ["str", true],
189
+ [120, true],
190
+ [Symbol("s"), true],
191
+ [function () {}, true],
192
+ [false, true],
193
+ [true, true],
194
+ ["1", true],
195
+ ])("isDefined", (val, expected) => {
196
+ expect(isDefined(val)).toBe(expected);
197
+ });
198
+
199
+ test.each([[isDefined], [parseURL]])("debounce", (fn) => {
200
+ expect(typeof debounce(fn, 100)).toBe("function");
201
+ });
202
+
203
+ test.each([
204
+ [
205
+ { start: 134356456456, end: null, status: [1, 2, 4, 7] },
206
+ "start=134356456456&end=&status[]=1&status[]=2&status[]=4&status[]=7",
207
+ ],
208
+ [{}, ""],
209
+ [{ 1: 2 }, "1=2"],
210
+ [
211
+ { params: { checked: true, num: 2 } },
212
+ "params=%7B%22checked%22%3Atrue%2C%22num%22%3A2%7D",
213
+ ],
214
+ ])("objectToQueryString", (obj, expected) => {
215
+ expect(objectToQueryString(obj)).toBe(expected);
216
+ });
217
+
218
+ test.each([
219
+ [{ b: "b" }, "b", true],
220
+ [{ a: "b" }, "b", false],
221
+ [{ bb: "b" }, "b", false],
222
+ ])("objectHasProp", (obj, prop, expected) => {
223
+ expect(objectHasProp(obj, prop)).toBe(expected);
224
+ });