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