@rogolev/value 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +19 -1
  3. package/docs/classes/Value/constructor.md +48 -0
  4. package/docs/classes/Value/get.md +51 -0
  5. package/docs/classes/Value/getType.md +71 -0
  6. package/docs/classes/Value/isArray.md +67 -0
  7. package/docs/classes/Value/isAssoc.md +68 -0
  8. package/docs/classes/Value/isBigInt.md +52 -0
  9. package/docs/classes/Value/isBool.md +60 -0
  10. package/docs/classes/Value/isBoolean.md +60 -0
  11. package/docs/classes/Value/isClass.md +55 -0
  12. package/docs/classes/Value/isEmpty.md +84 -0
  13. package/docs/classes/Value/isFloat.md +52 -0
  14. package/docs/classes/Value/isFunction.md +60 -0
  15. package/docs/classes/Value/isInfinity.md +60 -0
  16. package/docs/classes/Value/isInt.md +52 -0
  17. package/docs/classes/Value/isInteger.md +52 -0
  18. package/docs/classes/Value/isList.md +59 -0
  19. package/docs/classes/Value/isNaN.md +79 -0
  20. package/docs/classes/Value/isNull.md +59 -0
  21. package/docs/classes/Value/isNumber.md +80 -0
  22. package/docs/classes/Value/isNumeric.md +79 -0
  23. package/docs/classes/Value/isObject.md +68 -0
  24. package/docs/classes/Value/isScalar.md +72 -0
  25. package/docs/classes/Value/isString.md +67 -0
  26. package/docs/classes/Value/isSymbol.md +75 -0
  27. package/docs/classes/Value/isUndefined.md +67 -0
  28. package/docs/classes/Value/print.md +164 -0
  29. package/docs/classes/Value/printType.md +158 -0
  30. package/docs/classes/Value/setType.md +79 -0
  31. package/docs/classes/Value/toArray.md +85 -0
  32. package/docs/classes/Value/toAssoc.md +85 -0
  33. package/docs/classes/Value/toBool.md +71 -0
  34. package/docs/classes/Value/toBoolean.md +71 -0
  35. package/docs/classes/Value/toFloat.md +72 -0
  36. package/docs/classes/Value/toInt.md +72 -0
  37. package/docs/classes/Value/toInteger.md +72 -0
  38. package/docs/classes/Value/toList.md +77 -0
  39. package/docs/classes/Value/toObject.md +78 -0
  40. package/docs/classes/Value/toPrint.md +115 -0
  41. package/docs/classes/Value/toPrintType.md +110 -0
  42. package/docs/classes/Value/toString.md +134 -0
  43. package/docs/classes/Value.md +113 -0
  44. package/docs/classes.md +2 -0
  45. package/docs/constants.md +47 -0
  46. package/docs/helpers/value.md +95 -0
  47. package/docs/helpers.md +2 -0
  48. package/index.mjs +3 -0
  49. package/package.json +2 -2
  50. package/src/classes/Convert.mjs +818 -819
  51. package/src/classes/Type.mjs +1284 -1285
  52. package/src/classes/Value.mjs +2846 -0
  53. package/src/constants.mjs +14 -0
  54. package/src/helpers/array.mjs +107 -107
  55. package/src/helpers/empty.mjs +70 -70
  56. package/src/helpers/gettype.mjs +149 -133
  57. package/src/helpers/is_array.mjs +128 -128
  58. package/src/helpers/is_assoc.mjs +51 -51
  59. package/src/helpers/is_bigint.mjs +47 -47
  60. package/src/helpers/is_bool.mjs +43 -43
  61. package/src/helpers/is_boolean.mjs +43 -43
  62. package/src/helpers/is_class.mjs +87 -87
  63. package/src/helpers/is_float.mjs +67 -67
  64. package/src/helpers/is_function.mjs +74 -74
  65. package/src/helpers/is_infinity.mjs +52 -52
  66. package/src/helpers/is_int.mjs +57 -57
  67. package/src/helpers/is_integer.mjs +74 -74
  68. package/src/helpers/is_list.mjs +43 -43
  69. package/src/helpers/is_nan.mjs +51 -51
  70. package/src/helpers/is_null.mjs +37 -37
  71. package/src/helpers/is_number.mjs +49 -49
  72. package/src/helpers/is_numeric.mjs +64 -64
  73. package/src/helpers/is_object.mjs +72 -72
  74. package/src/helpers/is_scalar.mjs +45 -45
  75. package/src/helpers/is_string.mjs +46 -46
  76. package/src/helpers/is_symbol.mjs +46 -46
  77. package/src/helpers/is_undefined.mjs +44 -44
  78. package/src/helpers/print.mjs +245 -245
  79. package/src/helpers/print_type.mjs +261 -261
  80. package/src/helpers/settype.mjs +101 -101
  81. package/src/helpers/to_array.mjs +118 -118
  82. package/src/helpers/to_assoc.mjs +98 -98
  83. package/src/helpers/to_bool.mjs +68 -68
  84. package/src/helpers/to_boolean.mjs +64 -64
  85. package/src/helpers/to_float.mjs +72 -72
  86. package/src/helpers/to_int.mjs +93 -93
  87. package/src/helpers/to_integer.mjs +81 -81
  88. package/src/helpers/to_list.mjs +56 -56
  89. package/src/helpers/to_object.mjs +94 -94
  90. package/src/helpers/to_string.mjs +157 -157
  91. package/src/helpers/value.mjs +92 -0
  92. package/tests/classes/Convert.test.mjs +398 -399
  93. package/tests/classes/Type.test.mjs +1262 -1263
  94. package/tests/classes/Value.test.mjs +423 -0
  95. package/tests/constants.test.mjs +75 -0
  96. package/tests/helpers/array.test.mjs +58 -58
  97. package/tests/helpers/empty.test.mjs +22 -22
  98. package/tests/helpers/gettype.test.mjs +74 -74
  99. package/tests/helpers/is_array.test.mjs +404 -404
  100. package/tests/helpers/is_assoc.test.mjs +42 -42
  101. package/tests/helpers/is_bigint.test.mjs +51 -51
  102. package/tests/helpers/is_bool.test.mjs +43 -43
  103. package/tests/helpers/is_boolean.test.mjs +43 -43
  104. package/tests/helpers/is_class.test.mjs +84 -84
  105. package/tests/helpers/is_float.test.mjs +87 -87
  106. package/tests/helpers/is_function.test.mjs +83 -83
  107. package/tests/helpers/is_infinity.test.mjs +46 -46
  108. package/tests/helpers/is_int.test.mjs +45 -45
  109. package/tests/helpers/is_integer.test.mjs +64 -64
  110. package/tests/helpers/is_list.test.mjs +42 -42
  111. package/tests/helpers/is_nan.test.mjs +43 -43
  112. package/tests/helpers/is_null.test.mjs +17 -17
  113. package/tests/helpers/is_number.test.mjs +25 -25
  114. package/tests/helpers/is_numeric.test.mjs +30 -30
  115. package/tests/helpers/is_object.test.mjs +52 -52
  116. package/tests/helpers/is_scalar.test.mjs +21 -21
  117. package/tests/helpers/is_string.test.mjs +20 -20
  118. package/tests/helpers/is_symbol.test.mjs +20 -20
  119. package/tests/helpers/is_undefined.test.mjs +18 -18
  120. package/tests/helpers/print.test.mjs +62 -62
  121. package/tests/helpers/print_type.test.mjs +62 -62
  122. package/tests/helpers/settype.test.mjs +34 -34
  123. package/tests/helpers/to_array.test.mjs +38 -38
  124. package/tests/helpers/to_assoc.test.mjs +33 -33
  125. package/tests/helpers/to_bool.test.mjs +51 -51
  126. package/tests/helpers/to_boolean.test.mjs +51 -51
  127. package/tests/helpers/to_float.test.mjs +26 -26
  128. package/tests/helpers/to_int.test.mjs +48 -48
  129. package/tests/helpers/to_integer.test.mjs +48 -48
  130. package/tests/helpers/to_list.test.mjs +32 -32
  131. package/tests/helpers/to_object.test.mjs +36 -36
  132. package/tests/helpers/to_string.test.mjs +71 -71
  133. package/tests/helpers/value.test.mjs +68 -0
@@ -0,0 +1,423 @@
1
+ import { expect, test, describe, jest } from '@jest/globals';
2
+ import { Value } from '../../index.mjs';
3
+
4
+ describe('Класс Value', () => {
5
+ describe('Метод get', () => {
6
+ test('должен возвращать значение', () => {
7
+ const value = new Value('test');
8
+ expect(value.get()).toBe('test');
9
+ });
10
+ });
11
+
12
+ describe('Метод getType', () => {
13
+ test('должен возвращать тип значения', () => {
14
+ const value = new Value('test');
15
+ expect(value.getType()).toBe('string');
16
+ });
17
+ });
18
+
19
+ describe('Метод isEmpty', () => {
20
+ test('должен возвращать логическое значение', () => {
21
+ const value = new Value('test');
22
+ expect(value.isEmpty()).toBe(false);
23
+ });
24
+
25
+ test('должен возвращать true для пустых значений', () => {
26
+ const value1 = new Value(null);
27
+ const value2 = new Value(undefined);
28
+ const value3 = new Value('');
29
+ const value4 = new Value(0);
30
+ const value5 = new Value(false);
31
+ const value6 = new Value([]);
32
+ const value7 = new Value({});
33
+
34
+ expect(value1.isEmpty()).toBe(true);
35
+ expect(value2.isEmpty()).toBe(true);
36
+ expect(value3.isEmpty()).toBe(true);
37
+ expect(value4.isEmpty()).toBe(true);
38
+ expect(value5.isEmpty()).toBe(true);
39
+ expect(value6.isEmpty()).toBe(true);
40
+ expect(value7.isEmpty()).toBe(true);
41
+ });
42
+ });
43
+
44
+ describe('Метод print', () => {
45
+ test('должен распечатывать значение в консоль и возвращать текущий экземпляр класса Value', () => {
46
+ const logSpy = jest.spyOn(console, 'log');
47
+ const value = new Value('test');
48
+
49
+ expect(value.print()).toBe(value);
50
+ expect(logSpy).toHaveBeenCalledWith('"test"');
51
+ });
52
+ });
53
+
54
+ describe('Метод toPrint', () => {
55
+ test('должен возвращать распечатанное значение в виде экземпляра Value', () => {
56
+ const value = new Value('test');
57
+ const result = value.toPrint();
58
+
59
+ expect(result).toBeInstanceOf(Value);
60
+ expect(result.get()).toBe('"test"');
61
+ });
62
+ });
63
+
64
+ describe('Метод printType', () => {
65
+ test('должен распечатывать значение в консоль и возвращать текущий экземпляр класса Value', () => {
66
+ const logSpy = jest.spyOn(console, 'log');
67
+ const value = new Value('test');
68
+
69
+ expect(value.printType()).toBe(value);
70
+ expect(logSpy).toHaveBeenCalledWith('string(4) "test"');
71
+ });
72
+ });
73
+
74
+ describe('Метод toPrintType', () => {
75
+ test('должен возвращать распечатанное значение в виде экземпляра Value', () => {
76
+ const value = new Value('test');
77
+ const result = value.toPrintType();
78
+
79
+ expect(result).toBeInstanceOf(Value);
80
+ expect(result.get()).toBe('string(4) "test"');
81
+ });
82
+ });
83
+
84
+ describe('Метод isArray', () => {
85
+ test('должен проверять, является ли значение массивом', () => {
86
+ const value1 = new Value([1, 2, 3]);
87
+ const value2 = new Value({ foo: 'bar' });
88
+
89
+ expect(value1.isArray()).toBe(true);
90
+ expect(value2.isArray()).toBe(true);
91
+ });
92
+ });
93
+
94
+ describe('Метод isAssoc', () => {
95
+ test('должен проверять, является ли значение ассоциативным массивом', () => {
96
+ const value1 = new Value({ foo: 'bar' });
97
+ const value2 = new Value([1, 2, 3]);
98
+
99
+ expect(value1.isAssoc()).toBe(true);
100
+ expect(value2.isAssoc()).toBe(false);
101
+ });
102
+ });
103
+
104
+ describe('Метод isBigInt', () => {
105
+ test('должен проверять, является ли значение типом bigint', () => {
106
+ const value1 = new Value(BigInt(123456));
107
+ const value2 = new Value(123456);
108
+
109
+ expect(value1.isBigInt()).toBe(true);
110
+ expect(value2.isBigInt()).toBe(false);
111
+ });
112
+ });
113
+
114
+ describe('Метод isBool', () => {
115
+ test('должен проверять, является ли значение логическим типом', () => {
116
+ const value1 = new Value(true);
117
+ const value2 = new Value('true');
118
+
119
+ expect(value1.isBool()).toBe(true);
120
+ expect(value2.isBool()).toBe(false);
121
+ });
122
+ });
123
+
124
+ describe('Метод isBoolean', () => {
125
+ test('должен проверять, является ли значение логическим типом', () => {
126
+ const value1 = new Value(true);
127
+ const value2 = new Value('true');
128
+
129
+ expect(value1.isBoolean()).toBe(true);
130
+ expect(value2.isBoolean()).toBe(false);
131
+ });
132
+ });
133
+
134
+ describe('Метод isClass', () => {
135
+ test('должен проверять, является ли значение классом', () => {
136
+ class MyClass {}
137
+ function MyFunction() {}
138
+
139
+ const value1 = new Value(MyClass);
140
+ const value2 = new Value(MyFunction);
141
+
142
+ expect(value1.isClass()).toBe(true);
143
+ expect(value2.isClass()).toBe(false);
144
+ });
145
+ });
146
+
147
+ describe('Метод isFloat', () => {
148
+ test('должен проверять, является ли значение числом с плавающей точкой', () => {
149
+ const value1 = new Value(3.14);
150
+ const value2 = new Value(42);
151
+
152
+ expect(value1.isFloat()).toBe(true);
153
+ expect(value2.isFloat()).toBe(false);
154
+ });
155
+ });
156
+
157
+ describe('Метод isFunction', () => {
158
+ test('должен проверять, является ли значение функцией', () => {
159
+ function MyFunction() {}
160
+ class MyClass {}
161
+
162
+ const value1 = new Value(MyFunction);
163
+ const value2 = new Value(MyClass);
164
+
165
+ expect(value1.isFunction()).toBe(true);
166
+ expect(value2.isFunction()).toBe(false);
167
+ });
168
+ });
169
+
170
+ describe('Метод isInfinity', () => {
171
+ test('должен проверять, является ли значение бесконечностью', () => {
172
+ const value1 = new Value(Infinity);
173
+ const value2 = new Value(42);
174
+
175
+ expect(value1.isInfinity()).toBe(true);
176
+ expect(value2.isInfinity()).toBe(false);
177
+ });
178
+ });
179
+
180
+ describe('Метод isInt', () => {
181
+ test('должен проверять, является ли значение целым числом', () => {
182
+ const value1 = new Value(42);
183
+ const value2 = new Value(3.14);
184
+
185
+ expect(value1.isInt()).toBe(true);
186
+ expect(value2.isInt()).toBe(false);
187
+ });
188
+ });
189
+
190
+ describe('Метод isInteger', () => {
191
+ test('должен проверять, является ли значение целым числом', () => {
192
+ const value1 = new Value(42);
193
+ const value2 = new Value(3.14);
194
+
195
+ expect(value1.isInteger()).toBe(true);
196
+ expect(value2.isInteger()).toBe(false);
197
+ });
198
+ });
199
+
200
+ describe('Метод isList', () => {
201
+ test('должен проверять, является ли значение списком', () => {
202
+ const value1 = new Value([1, 2, 3]);
203
+ const value2 = new Value({ foo: 'bar' });
204
+
205
+ expect(value1.isList()).toBe(true);
206
+ expect(value2.isList()).toBe(false);
207
+ });
208
+ });
209
+
210
+ describe('Метод isNaN', () => {
211
+ test('должен проверять, является ли значение NaN', () => {
212
+ const value1 = new Value(NaN);
213
+ const value2 = new Value(42);
214
+
215
+ expect(value1.isNaN()).toBe(true);
216
+ expect(value2.isNaN()).toBe(false);
217
+ });
218
+ });
219
+
220
+ describe('Метод isNull', () => {
221
+ test('должен проверять, является ли значение null', () => {
222
+ const value1 = new Value(null);
223
+ const value2 = new Value(undefined);
224
+
225
+ expect(value1.isNull()).toBe(true);
226
+ expect(value2.isNull()).toBe(false);
227
+ });
228
+ });
229
+
230
+ describe('Метод isNumber', () => {
231
+ test('должен проверять, является ли значение числом', () => {
232
+ const value1 = new Value(42);
233
+ const value2 = new Value('42');
234
+
235
+ expect(value1.isNumber()).toBe(true);
236
+ expect(value2.isNumber()).toBe(false);
237
+ });
238
+ });
239
+
240
+ describe('Метод isNumeric', () => {
241
+ test('должен проверять, является ли значение числом или числовой строкой', () => {
242
+ const value1 = new Value(42);
243
+ const value2 = new Value('42');
244
+ const value3 = new Value('hello');
245
+
246
+ expect(value1.isNumeric()).toBe(true);
247
+ expect(value2.isNumeric()).toBe(true);
248
+ expect(value3.isNumeric()).toBe(false);
249
+ });
250
+ });
251
+
252
+ describe('Метод isObject', () => {
253
+ test('должен проверять, является ли значение объектом', () => {
254
+ const value1 = new Value(new (class {})());
255
+ const value2 = new Value(42);
256
+
257
+ expect(value1.isObject()).toBe(true);
258
+ expect(value2.isObject()).toBe(false);
259
+ });
260
+ });
261
+
262
+ describe('Метод isScalar', () => {
263
+ test('должен проверять, является ли значение скалярным', () => {
264
+ const value1 = new Value(42);
265
+ const value2 = new Value({});
266
+ const value3 = new Value('hello');
267
+
268
+ expect(value1.isScalar()).toBe(true);
269
+ expect(value2.isScalar()).toBe(false);
270
+ expect(value3.isScalar()).toBe(true);
271
+ });
272
+ });
273
+
274
+ describe('Метод isString', () => {
275
+ test('должен проверять, является ли значение строкой', () => {
276
+ const value1 = new Value('hello');
277
+ const value2 = new Value(42);
278
+
279
+ expect(value1.isString()).toBe(true);
280
+ expect(value2.isString()).toBe(false);
281
+ });
282
+ });
283
+
284
+ describe('Метод isSymbol', () => {
285
+ test('должен проверять, является ли значение символом', () => {
286
+ const value1 = new Value(Symbol('symbol'));
287
+ const value2 = new Value('symbol');
288
+
289
+ expect(value1.isSymbol()).toBe(true);
290
+ expect(value2.isSymbol()).toBe(false);
291
+ });
292
+ });
293
+
294
+ describe('Метод isUndefined', () => {
295
+ test('должен проверять, является ли значение undefined', () => {
296
+ const value1 = new Value(undefined);
297
+ const value2 = new Value(null);
298
+
299
+ expect(value1.isUndefined()).toBe(true);
300
+ expect(value2.isUndefined()).toBe(false);
301
+ });
302
+ });
303
+
304
+ describe('Метод toArray', () => {
305
+ test('должен преобразовывать значение в массив', () => {
306
+ const value1 = new Value('test');
307
+ const value2 = new Value(123);
308
+ const value3 = new Value({ key: 'value' });
309
+
310
+ expect(value1.toArray().get()).toEqual(['test']);
311
+ expect(value2.toArray().get()).toEqual([123]);
312
+ expect(value3.toArray().get()).toEqual({ key: 'value' });
313
+ });
314
+ });
315
+
316
+ describe('Метод toAssoc', () => {
317
+ test('должен преобразовывать значение в ассоциативный массив', () => {
318
+ const value1 = new Value('test');
319
+ const value2 = new Value(123);
320
+ const value3 = new Value([1, 2, 3]);
321
+
322
+ expect(value1.toAssoc().get()).toEqual({ 0: 'test' });
323
+ expect(value2.toAssoc().get()).toEqual({ 0: 123 });
324
+ expect(value3.toAssoc().get()).toEqual({ 0: 1, 1: 2, 2: 3 });
325
+ });
326
+ });
327
+
328
+ describe('Метод toBool', () => {
329
+ test('должен преобразовывать значение в логическое значение', () => {
330
+ const value1 = new Value('test');
331
+ const value2 = new Value(0);
332
+ const value3 = new Value(null);
333
+
334
+ expect(value1.toBool().get()).toBe(true);
335
+ expect(value2.toBool().get()).toBe(false);
336
+ expect(value3.toBool().get()).toBe(false);
337
+ });
338
+ });
339
+
340
+ describe('Метод toBoolean', () => {
341
+ test('должен преобразовывать значение в логическое значение', () => {
342
+ const value1 = new Value('test');
343
+ const value2 = new Value(0);
344
+ const value3 = new Value(null);
345
+
346
+ expect(value1.toBoolean().get()).toBe(true);
347
+ expect(value2.toBoolean().get()).toBe(false);
348
+ expect(value3.toBoolean().get()).toBe(false);
349
+ });
350
+ });
351
+
352
+ describe('Метод toFloat', () => {
353
+ test('должен преобразовывать значение в число с плавающей точкой', () => {
354
+ const value1 = new Value('123.45');
355
+ const value2 = new Value(123);
356
+ const value3 = new Value('test');
357
+
358
+ expect(value1.toFloat().get()).toBe(123.45);
359
+ expect(value2.toFloat().get()).toBe(123.0);
360
+ expect(value3.toFloat().get()).toBe(0.0);
361
+ });
362
+ });
363
+
364
+ describe('Метод toInt', () => {
365
+ test('должен преобразовывать значение в целое число', () => {
366
+ const value1 = new Value('123');
367
+ const value2 = new Value(123.45);
368
+ const value3 = new Value('test');
369
+
370
+ expect(value1.toInt().get()).toBe(123);
371
+ expect(value2.toInt().get()).toBe(123);
372
+ expect(value3.toInt().get()).toBe(0);
373
+ });
374
+ });
375
+
376
+ describe('Метод toInteger', () => {
377
+ test('должен преобразовывать значение в целое число', () => {
378
+ const value1 = new Value('123');
379
+ const value2 = new Value(123.45);
380
+ const value3 = new Value('test');
381
+
382
+ expect(value1.toInteger().get()).toBe(123);
383
+ expect(value2.toInteger().get()).toBe(123);
384
+ expect(value3.toInteger().get()).toBe(0);
385
+ });
386
+ });
387
+
388
+ describe('Метод toList', () => {
389
+ test('должен преобразовывать значение в список', () => {
390
+ const value1 = new Value('test');
391
+ const value2 = new Value(123);
392
+ const value3 = new Value({ key: 'value' });
393
+
394
+ expect(value1.toList().get()).toEqual(['test']);
395
+ expect(value2.toList().get()).toEqual([123]);
396
+ expect(value3.toList().get()).toEqual(['value']);
397
+ });
398
+ });
399
+
400
+ describe('Метод toObject', () => {
401
+ test('должен преобразовывать значение в объект', () => {
402
+ const value1 = new Value('test');
403
+ const value2 = new Value(123);
404
+ const value3 = new Value([1, 2, 3]);
405
+
406
+ expect(value1.toObject().get()).toEqual({ value: 'test' });
407
+ expect(value2.toObject().get()).toEqual({ value: 123 });
408
+ expect(value3.toObject().get()).toEqual({ 0: 1, 1: 2, 2: 3 });
409
+ });
410
+ });
411
+
412
+ describe('Метод toString', () => {
413
+ test('должен преобразовывать значение в строку', () => {
414
+ const value1 = new Value(123);
415
+ const value2 = new Value(true);
416
+ const value3 = new Value({ key: 'value' });
417
+
418
+ expect(value1.toString().get()).toBe('123');
419
+ expect(value2.toString().get()).toBe('true');
420
+ expect(value3.toString().get()).toBe("{\n key: 'value',\n}");
421
+ });
422
+ });
423
+ });
@@ -0,0 +1,75 @@
1
+ import { describe, test, expect } from '@jest/globals';
2
+ import {
3
+ TYPE_ARRAY,
4
+ TYPE_BIGINT,
5
+ TYPE_BOOLEAN,
6
+ TYPE_CLASS,
7
+ TYPE_FLOAT,
8
+ TYPE_FUNCTION,
9
+ TYPE_INFINITY,
10
+ TYPE_INTEGER,
11
+ TYPE_NAN,
12
+ TYPE_NULL,
13
+ TYPE_OBJECT,
14
+ TYPE_STRING,
15
+ TYPE_SYMBOL,
16
+ TYPE_UNDEFINED,
17
+ } from '../index.mjs';
18
+
19
+ describe('Константы', () => {
20
+ test('TYPE_NULL должно быть "null"', () => {
21
+ expect(TYPE_NULL).toBe('null');
22
+ });
23
+
24
+ test('TYPE_NAN должно быть "NaN"', () => {
25
+ expect(TYPE_NAN).toBe('NaN');
26
+ });
27
+
28
+ test('TYPE_UNDEFINED должно быть "undefined"', () => {
29
+ expect(TYPE_UNDEFINED).toBe('undefined');
30
+ });
31
+
32
+ test('TYPE_INFINITY должно быть "infinity"', () => {
33
+ expect(TYPE_INFINITY).toBe('infinity');
34
+ });
35
+
36
+ test('TYPE_BOOLEAN должно быть "boolean"', () => {
37
+ expect(TYPE_BOOLEAN).toBe('boolean');
38
+ });
39
+
40
+ test('TYPE_INTEGER должно быть "integer"', () => {
41
+ expect(TYPE_INTEGER).toBe('integer');
42
+ });
43
+
44
+ test('TYPE_BIGINT должно быть "bigint"', () => {
45
+ expect(TYPE_BIGINT).toBe('bigint');
46
+ });
47
+
48
+ test('TYPE_FLOAT должно быть "float"', () => {
49
+ expect(TYPE_FLOAT).toBe('float');
50
+ });
51
+
52
+ test('TYPE_STRING должно быть "string"', () => {
53
+ expect(TYPE_STRING).toBe('string');
54
+ });
55
+
56
+ test('TYPE_SYMBOL должно быть "symbol"', () => {
57
+ expect(TYPE_SYMBOL).toBe('symbol');
58
+ });
59
+
60
+ test('TYPE_CLASS должно быть "class"', () => {
61
+ expect(TYPE_CLASS).toBe('class');
62
+ });
63
+
64
+ test('TYPE_FUNCTION должно быть "function"', () => {
65
+ expect(TYPE_FUNCTION).toBe('function');
66
+ });
67
+
68
+ test('TYPE_ARRAY должно быть "array"', () => {
69
+ expect(TYPE_ARRAY).toBe('array');
70
+ });
71
+
72
+ test('TYPE_OBJECT должно быть "object"', () => {
73
+ expect(TYPE_OBJECT).toBe('object');
74
+ });
75
+ });
@@ -1,58 +1,58 @@
1
- import { expect, test, describe } from '@jest/globals';
2
- import { array } from '../../index.mjs';
3
-
4
- describe('Функция array', () => {
5
- test('Должна возвращать массив с единственным элементом, если передан один массив', () => {
6
- const input = [1, 2, 3];
7
- const result = array(input);
8
- expect(result).toEqual([1, 2, 3]);
9
- });
10
-
11
- test('Должна добавлять элементы в массив, если передано несколько значений', () => {
12
- const result = array(1, [2, 3], { a: 10, b: 20 });
13
- expect(result).toEqual([1, [2, 3], { a: 10, b: 20 }]);
14
- });
15
-
16
- test('Должна обрабатывать ассоциативные массивы (объекты с ключами и значениями)', () => {
17
- const assoc = { key1: 'value1', key2: 'value2' };
18
- const result = array(assoc);
19
- expect(result).toEqual(assoc); // Элемент должен быть объектом
20
- expect(Object.getPrototypeOf(result)).toBeNull(); // Прототип должен быть null
21
- });
22
-
23
- test('Должна создавать итератор для ассоциативного массива', () => {
24
- const assoc = { key: 'value', anotherKey: 'anotherValue' };
25
- const result = array(assoc);
26
-
27
- const iteratorOutput = [];
28
- for (const [key, value] of result) {
29
- iteratorOutput.push([key, value]);
30
- }
31
-
32
- expect(iteratorOutput).toEqual([
33
- ['key', 'value'],
34
- ['anotherKey', 'anotherValue'],
35
- ]);
36
- });
37
-
38
- test('Должна возвращать исходный массив, если он передан как единственный аргумент', () => {
39
- const nestedArray = [1, 2, 3];
40
- const result = array(nestedArray);
41
- expect(result).toBe(nestedArray); // Массив должен быть возвращен напрямую
42
- });
43
-
44
- test('Должна работать с примитивными значениями', () => {
45
- const result = array(42, 'test', true, null);
46
- expect(result).toEqual([42, 'test', true, null]);
47
- });
48
-
49
- test('Должна возвращать массив, если передано несколько различных типов', () => {
50
- const result = array(1, 'text', [2, 3], { foo: 'bar' });
51
- expect(result).toEqual([1, 'text', [2, 3], { foo: 'bar' }]);
52
- });
53
-
54
- test('Должна возвращать массив с объектами и ассоциативными массивами', () => {
55
- const result = array({ key1: 'value1' }, [1, 2], { key2: 'value2' });
56
- expect(result).toEqual([{ key1: 'value1' }, [1, 2], { key2: 'value2' }]);
57
- });
58
- });
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { array } from '../../index.mjs';
3
+
4
+ describe('Функция array', () => {
5
+ test('Должна возвращать массив с единственным элементом, если передан один массив', () => {
6
+ const input = [1, 2, 3];
7
+ const result = array(input);
8
+ expect(result).toEqual([1, 2, 3]);
9
+ });
10
+
11
+ test('Должна добавлять элементы в массив, если передано несколько значений', () => {
12
+ const result = array(1, [2, 3], { a: 10, b: 20 });
13
+ expect(result).toEqual([1, [2, 3], { a: 10, b: 20 }]);
14
+ });
15
+
16
+ test('Должна обрабатывать ассоциативные массивы (объекты с ключами и значениями)', () => {
17
+ const assoc = { key1: 'value1', key2: 'value2' };
18
+ const result = array(assoc);
19
+ expect(result).toEqual(assoc); // Элемент должен быть объектом
20
+ expect(Object.getPrototypeOf(result)).toBeNull(); // Прототип должен быть null
21
+ });
22
+
23
+ test('Должна создавать итератор для ассоциативного массива', () => {
24
+ const assoc = { key: 'value', anotherKey: 'anotherValue' };
25
+ const result = array(assoc);
26
+
27
+ const iteratorOutput = [];
28
+ for (const [key, value] of result) {
29
+ iteratorOutput.push([key, value]);
30
+ }
31
+
32
+ expect(iteratorOutput).toEqual([
33
+ ['key', 'value'],
34
+ ['anotherKey', 'anotherValue'],
35
+ ]);
36
+ });
37
+
38
+ test('Должна возвращать исходный массив, если он передан как единственный аргумент', () => {
39
+ const nestedArray = [1, 2, 3];
40
+ const result = array(nestedArray);
41
+ expect(result).toBe(nestedArray); // Массив должен быть возвращен напрямую
42
+ });
43
+
44
+ test('Должна работать с примитивными значениями', () => {
45
+ const result = array(42, 'test', true, null);
46
+ expect(result).toEqual([42, 'test', true, null]);
47
+ });
48
+
49
+ test('Должна возвращать массив, если передано несколько различных типов', () => {
50
+ const result = array(1, 'text', [2, 3], { foo: 'bar' });
51
+ expect(result).toEqual([1, 'text', [2, 3], { foo: 'bar' }]);
52
+ });
53
+
54
+ test('Должна возвращать массив с объектами и ассоциативными массивами', () => {
55
+ const result = array({ key1: 'value1' }, [1, 2], { key2: 'value2' });
56
+ expect(result).toEqual([{ key1: 'value1' }, [1, 2], { key2: 'value2' }]);
57
+ });
58
+ });
@@ -1,22 +1,22 @@
1
- import { expect, test, describe } from '@jest/globals';
2
- import { empty } from '../../index.mjs';
3
-
4
- describe('Функция empty', () => {
5
- test('Должна возвращать true для пустых значений', () => {
6
- expect(empty(null)).toBe(true);
7
- expect(empty(undefined)).toBe(true);
8
- expect(empty('')).toBe(true);
9
- expect(empty(0)).toBe(true);
10
- expect(empty(false)).toBe(true);
11
- expect(empty([])).toBe(true);
12
- expect(empty({})).toBe(true);
13
- });
14
-
15
- test('Должна возвращать false для непустых значений', () => {
16
- expect(empty('example')).toBe(false);
17
- expect(empty(123)).toBe(false);
18
- expect(empty(true)).toBe(false);
19
- expect(empty([1, 2, 3])).toBe(false);
20
- expect(empty({ key: 'value' })).toBe(false);
21
- });
22
- });
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { empty } from '../../index.mjs';
3
+
4
+ describe('Функция empty', () => {
5
+ test('Должна возвращать true для пустых значений', () => {
6
+ expect(empty(null)).toBe(true);
7
+ expect(empty(undefined)).toBe(true);
8
+ expect(empty('')).toBe(true);
9
+ expect(empty(0)).toBe(true);
10
+ expect(empty(false)).toBe(true);
11
+ expect(empty([])).toBe(true);
12
+ expect(empty({})).toBe(true);
13
+ });
14
+
15
+ test('Должна возвращать false для непустых значений', () => {
16
+ expect(empty('example')).toBe(false);
17
+ expect(empty(123)).toBe(false);
18
+ expect(empty(true)).toBe(false);
19
+ expect(empty([1, 2, 3])).toBe(false);
20
+ expect(empty({ key: 'value' })).toBe(false);
21
+ });
22
+ });