@rogolev/value 0.0.2 → 0.0.3

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.
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
+ });