validno 0.4.4 → 0.4.5

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 (42) hide show
  1. package/dist/dev.d.ts +6 -1
  2. package/dist/dev.d.ts.map +1 -1
  3. package/dist/dev.js +116 -5
  4. package/dist/engine/methods/validateType.d.ts.map +1 -1
  5. package/dist/engine/methods/validateType.js +4 -0
  6. package/package.json +1 -1
  7. package/dist/tests/cases/corruptedData.test.d.ts +0 -2
  8. package/dist/tests/cases/corruptedData.test.d.ts.map +0 -1
  9. package/dist/tests/cases/corruptedData.test.js +0 -81
  10. package/dist/tests/cases/dataInputIsNotAnObject.test.d.ts +0 -2
  11. package/dist/tests/cases/dataInputIsNotAnObject.test.d.ts.map +0 -1
  12. package/dist/tests/cases/dataInputIsNotAnObject.test.js +0 -24
  13. package/dist/tests/cases/notRequiredNestedKey.test.d.ts +0 -2
  14. package/dist/tests/cases/notRequiredNestedKey.test.d.ts.map +0 -1
  15. package/dist/tests/cases/notRequiredNestedKey.test.js +0 -38
  16. package/dist/tests/cases/secondLevelDeepValidates.test.d.ts +0 -2
  17. package/dist/tests/cases/secondLevelDeepValidates.test.d.ts.map +0 -1
  18. package/dist/tests/cases/secondLevelDeepValidates.test.js +0 -112
  19. package/dist/tests/customMessage.test.d.ts +0 -2
  20. package/dist/tests/customMessage.test.d.ts.map +0 -1
  21. package/dist/tests/customMessage.test.js +0 -102
  22. package/dist/tests/customType.test.d.ts +0 -2
  23. package/dist/tests/customType.test.d.ts.map +0 -1
  24. package/dist/tests/customType.test.js +0 -146
  25. package/dist/tests/joinErrors.test.d.ts +0 -2
  26. package/dist/tests/joinErrors.test.d.ts.map +0 -1
  27. package/dist/tests/joinErrors.test.js +0 -62
  28. package/dist/tests/missing.test.d.ts +0 -2
  29. package/dist/tests/missing.test.d.ts.map +0 -1
  30. package/dist/tests/missing.test.js +0 -224
  31. package/dist/tests/onlyKeys.test.d.ts +0 -2
  32. package/dist/tests/onlyKeys.test.d.ts.map +0 -1
  33. package/dist/tests/onlyKeys.test.js +0 -74
  34. package/dist/tests/types.test.d.ts +0 -2
  35. package/dist/tests/types.test.d.ts.map +0 -1
  36. package/dist/tests/types.test.js +0 -273
  37. package/dist/tests/utils/_errors.test.d.ts +0 -2
  38. package/dist/tests/utils/_errors.test.d.ts.map +0 -1
  39. package/dist/tests/utils/_errors.test.js +0 -47
  40. package/dist/tests/utils/_validations.test.d.ts +0 -2
  41. package/dist/tests/utils/_validations.test.d.ts.map +0 -1
  42. package/dist/tests/utils/_validations.test.js +0 -773
@@ -1,773 +0,0 @@
1
- var _a;
2
- import { describe, expect, test } from '@jest/globals';
3
- import _validations from '../../utils/validations';
4
- class TypesAndValues {
5
- constructor() {
6
- }
7
- }
8
- _a = TypesAndValues;
9
- TypesAndValues.list = {
10
- boolean: true,
11
- null: null,
12
- undefined: undefined,
13
- string: 'string',
14
- number: 12345,
15
- array: ['a', 'b'],
16
- object: { key: 'value' },
17
- date: new Date(),
18
- regexp: new RegExp(/start.*end/),
19
- hex: '#fbec84',
20
- };
21
- TypesAndValues.getValues = (types = []) => {
22
- let output = [];
23
- for (const key of types) {
24
- if (key in _a.list)
25
- output.push(_a.list[key]);
26
- }
27
- return output;
28
- };
29
- TypesAndValues.getValuesExcept = (except = []) => {
30
- const output = Object.assign({}, _a.list);
31
- except.forEach(key => delete output[key]);
32
- return Object.values(output);
33
- };
34
- const checkEveryValue = (values, func, expected = true) => {
35
- const results = {};
36
- for (const v of values) {
37
- const isChecked = func(v);
38
- results[v] = isChecked;
39
- }
40
- return Object.values(results).every((e) => e === expected);
41
- };
42
- describe('Тест _validations.isString', () => {
43
- test('Некорректные значения не проходят проверку', () => {
44
- const values = TypesAndValues.getValuesExcept(['string', 'hex']);
45
- const isEveryFalse = checkEveryValue(values, _validations.isString, false);
46
- expect(isEveryFalse).toBe(true);
47
- });
48
- test('Корректные значения проходят проверку', () => {
49
- const values = TypesAndValues.getValues(['string', 'hex']);
50
- const isEveryTrue = checkEveryValue(values, _validations.isString, true);
51
- expect(isEveryTrue).toBe(true);
52
- });
53
- });
54
- describe('Тест _validations.isNumber', () => {
55
- test('Некорректные значения не проходят проверку', () => {
56
- const values = TypesAndValues.getValuesExcept(['number']);
57
- const isEveryFalse = checkEveryValue(values, _validations.isNumber, false);
58
- expect(isEveryFalse).toBe(true);
59
- });
60
- test('Корректные значения проходят проверку', () => {
61
- const values = TypesAndValues.getValues(['number']);
62
- const isEveryTrue = checkEveryValue(values, _validations.isNumber, true);
63
- expect(isEveryTrue).toBe(true);
64
- });
65
- });
66
- describe('Тест _validations.isArray', () => {
67
- test('Некорректные значения не проходят проверку', () => {
68
- const values = TypesAndValues.getValuesExcept(['array']);
69
- const isEveryFalse = checkEveryValue(values, _validations.isArray, false);
70
- expect(isEveryFalse).toBe(true);
71
- });
72
- test('Корректные значения проходят проверку', () => {
73
- const values = TypesAndValues.getValues(['array']);
74
- const isEveryTrue = checkEveryValue(values, _validations.isArray, true);
75
- expect(isEveryTrue).toBe(true);
76
- });
77
- });
78
- describe('Тест _validations.isObject', () => {
79
- test('Некорректные значения не проходят проверку', () => {
80
- const values = TypesAndValues.getValuesExcept(['object']);
81
- const isEveryFalse = checkEveryValue(values, _validations.isObject, false);
82
- expect(isEveryFalse).toBe(true);
83
- });
84
- test('Корректные значения проходят проверку', () => {
85
- const values = TypesAndValues.getValues(['object']);
86
- const isEveryTrue = checkEveryValue(values, _validations.isObject, true);
87
- expect(isEveryTrue).toBe(true);
88
- });
89
- });
90
- describe('Тест _validations.isDate', () => {
91
- test('Некорректные значения не проходят проверку', () => {
92
- const values = TypesAndValues.getValuesExcept(['date']);
93
- const isEveryFalse = checkEveryValue(values, _validations.isDate, false);
94
- expect(isEveryFalse).toBe(true);
95
- });
96
- test('Корректные значения проходят проверку', () => {
97
- const values = TypesAndValues.getValues(['date']);
98
- const isEveryTrue = checkEveryValue(values, _validations.isDate, true);
99
- expect(isEveryTrue).toBe(true);
100
- });
101
- });
102
- describe('Тест _validations.isRegex', () => {
103
- test('Некорректные значения не проходят проверку', () => {
104
- const values = TypesAndValues.getValuesExcept(['regexp']);
105
- const isEveryFalse = checkEveryValue(values, _validations.isRegex, false);
106
- expect(isEveryFalse).toBe(true);
107
- });
108
- test('Корректные значения проходят проверку', () => {
109
- const values = TypesAndValues.getValues(['regexp']);
110
- const isEveryTrue = checkEveryValue(values, _validations.isRegex, true);
111
- expect(isEveryTrue).toBe(true);
112
- });
113
- });
114
- describe('Тест _validations.isBoolean', () => {
115
- test('Некорректные значения не проходят проверку', () => {
116
- const values = TypesAndValues.getValuesExcept(['boolean']);
117
- const isEveryFalse = checkEveryValue(values, _validations.isBoolean, false);
118
- expect(isEveryFalse).toBe(true);
119
- });
120
- test('Корректные значения проходят проверку', () => {
121
- const values = TypesAndValues.getValues(['boolean']);
122
- const isEveryTrue = checkEveryValue(values, _validations.isBoolean, true);
123
- expect(isEveryTrue).toBe(true);
124
- });
125
- });
126
- describe('Тест _validations.isNull', () => {
127
- test('Некорректные значения не проходят проверку', () => {
128
- const values = TypesAndValues.getValuesExcept(['null']);
129
- const isEveryFalse = checkEveryValue(values, _validations.isNull, false);
130
- expect(isEveryFalse).toBe(true);
131
- });
132
- test('Корректные значения проходят проверку', () => {
133
- const values = TypesAndValues.getValues(['null']);
134
- const isEveryTrue = checkEveryValue(values, _validations.isNull, true);
135
- expect(isEveryTrue).toBe(true);
136
- });
137
- });
138
- describe('Тест _validations.isUndefined', () => {
139
- test('Некорректные значения не проходят проверку', () => {
140
- const values = TypesAndValues.getValuesExcept(['undefined']);
141
- const isEveryFalse = checkEveryValue(values, _validations.isUndefined, false);
142
- expect(isEveryFalse).toBe(true);
143
- });
144
- test('Корректные значения проходят проверку', () => {
145
- const values = TypesAndValues.getValues(['undefined']);
146
- const isEveryTrue = checkEveryValue(values, _validations.isUndefined, true);
147
- expect(isEveryTrue).toBe(true);
148
- });
149
- });
150
- describe('Тест _validations.isNullOrUndefined', () => {
151
- test('Некорректные значения не проходят проверку', () => {
152
- const values = TypesAndValues.getValuesExcept(['undefined', 'null']);
153
- const isEveryFalse = checkEveryValue(values, _validations.isNullOrUndefined, false);
154
- expect(isEveryFalse).toBe(true);
155
- });
156
- test('Корректные значения проходят проверку', () => {
157
- const values = TypesAndValues.getValues(['undefined', 'null']);
158
- const isEveryTrue = checkEveryValue(values, _validations.isNullOrUndefined, true);
159
- expect(isEveryTrue).toBe(true);
160
- });
161
- });
162
- describe('Тест _validations.isEmail', () => {
163
- test('Некорректные типы значений не проходят проверку', () => {
164
- const values = TypesAndValues.getValuesExcept([]);
165
- const isEveryFalse = checkEveryValue(values, _validations.isEmail, false);
166
- expect(isEveryFalse).toBe(true);
167
- });
168
- test('Некорректные значения строк с email не проходят проверку', () => {
169
- const values = [
170
- 'nameemail.com',
171
- 'name@.com',
172
- 'name@com',
173
- 'name@com.',
174
- 'name@com..',
175
- 'name@com..com',
176
- 'name@com..com.',
177
- 'name@com..com..',
178
- 'name@com..com..com',
179
- 'name@com..com..com.',
180
- ];
181
- const isEveryFalse = checkEveryValue(values, _validations.isEmail, false);
182
- expect(isEveryFalse).toBe(true);
183
- });
184
- test('Корректные значения проходят проверку', () => {
185
- const values = [
186
- 'name@email.com',
187
- 'name+alias@email.com',
188
- 'name@email.com.ru',
189
- 'name+alias@email.com.ru',
190
- 'name.surname@email.com',
191
- '1234567890@email.com'
192
- ];
193
- const isEveryTrue = checkEveryValue(values, _validations.isEmail, true);
194
- expect(isEveryTrue).toBe(true);
195
- });
196
- });
197
- describe('Тест _validations.isDateYYYYMMDD', () => {
198
- test('Некорректные базовые значения не проходят проверку', () => {
199
- const values = TypesAndValues.getValuesExcept([]);
200
- const isEveryFalse = checkEveryValue(values, _validations.isDateYYYYMMDD, false);
201
- expect(isEveryFalse).toBe(true);
202
- });
203
- test('Некорректные значения строк с датами не проходят проверку', () => {
204
- const values = [
205
- '2024-1-05',
206
- '2024-01-5',
207
- '2024-1-5',
208
- '01-01-2025',
209
- '20250101',
210
- '202-01-1'
211
- ];
212
- const isEveryFalse = checkEveryValue(values, _validations.isDateYYYYMMDD, false);
213
- expect(isEveryFalse).toBe(true);
214
- });
215
- test('Корректные значения проходят проверку', () => {
216
- const values = ['2025-01-24'];
217
- const isEveryTrue = checkEveryValue(values, _validations.isDateYYYYMMDD, true);
218
- expect(isEveryTrue).toBe(true);
219
- });
220
- });
221
- describe('Тест _validations.isHex', () => {
222
- test('Некорректные базовые значения не проходят проверку', () => {
223
- const values = TypesAndValues.getValuesExcept(['hex']);
224
- const isEveryFalse = checkEveryValue(values, _validations.isHex, false);
225
- expect(isEveryFalse).toBe(true);
226
- });
227
- test('Некорректные значения строк с датами не проходят проверку', () => {
228
- const values = [
229
- '№fbec84',
230
- 'fbec84'
231
- ];
232
- const isEveryFalse = checkEveryValue(values, _validations.isHex, false);
233
- expect(isEveryFalse).toBe(true);
234
- });
235
- test('Корректные значения проходят проверку', () => {
236
- const values = ['#fbec84', '#000'];
237
- const isEveryTrue = checkEveryValue(values, _validations.isHex, true);
238
- expect(isEveryTrue).toBe(true);
239
- });
240
- });
241
- describe('Тест _validations.lengthIs', () => {
242
- test('Отсутствие аргументов вызывает ответ false', () => {
243
- const res1 = _validations.lengthIs('x');
244
- const res2 = _validations.lengthIs(undefined);
245
- expect(res1).toBe(false);
246
- expect(res2).toBe(false);
247
- });
248
- test('Некорректные базовые значения не проходят проверку', () => {
249
- const values = [
250
- 'a', 'b2', 'c3', 'd4', 'e5',
251
- null,
252
- ...TypesAndValues.getValuesExcept(['string'])
253
- ];
254
- const isEveryFalse = checkEveryValue(values, (v) => _validations.lengthIs(v, 10), false);
255
- expect(isEveryFalse).toBe(true);
256
- });
257
- test('Корректные значения проходят проверку', () => {
258
- const values = ['abc'];
259
- const isEveryTrue = checkEveryValue(values, (v) => _validations.lengthIs(v, 3), true);
260
- expect(isEveryTrue).toBe(true);
261
- });
262
- });
263
- describe('Тест _validations.lengthNot', () => {
264
- test('Отсутствие аргументов вызывает ответ false', () => {
265
- const res1 = _validations.lengthNot('x');
266
- const res2 = _validations.lengthNot();
267
- expect(res1).toBe(false);
268
- expect(res2).toBe(false);
269
- });
270
- test('Некорректные базовые значения не проходят проверку', () => {
271
- const values = [
272
- 'a1', 'b2',
273
- ['1', '2']
274
- ];
275
- const isEveryFalse = checkEveryValue(values, (v) => _validations.lengthNot(v, 2), false);
276
- expect(isEveryFalse).toBe(true);
277
- });
278
- test('Корректные значения проходят проверку', () => {
279
- const values = [
280
- 'abcdabc',
281
- 'abcdabcdz',
282
- ['1', '2', '3', '4', '5', '6', '7'],
283
- ['1', '2', '3', '4', '5', '6', '7', '9']
284
- ];
285
- const isEveryTrue = checkEveryValue(values, (v) => _validations.lengthNot(v, 2), true);
286
- expect(isEveryTrue).toBe(true);
287
- });
288
- });
289
- describe('Тест _validations.lengthMin', () => {
290
- test('Отсутствие аргументов вызывает ответ false', () => {
291
- const res1 = _validations.lengthMin('x');
292
- const res2 = _validations.lengthMin();
293
- expect(res1).toBe(false);
294
- expect(res2).toBe(false);
295
- });
296
- test('Некорректные базовые значения не проходят проверку', () => {
297
- const values = [
298
- '12',
299
- ['a', 'b']
300
- ];
301
- const isEveryFalse = checkEveryValue(values, (v) => _validations.lengthMin(v, 3), false);
302
- expect(isEveryFalse).toBe(true);
303
- });
304
- test('Корректные значения проходят проверку', () => {
305
- const values = [
306
- '123',
307
- '1234',
308
- ['1', '2', '3'],
309
- ['1', '2', '3', '4']
310
- ];
311
- const isEveryTrue = checkEveryValue(values, (v) => _validations.lengthMin(v, 3), true);
312
- expect(isEveryTrue).toBe(true);
313
- });
314
- });
315
- describe('Тест _validations.lengthMax', () => {
316
- test('Отсутствие аргументов вызывает ответ false', () => {
317
- const res1 = _validations.lengthMax('x');
318
- const res2 = _validations.lengthMax();
319
- expect(res1).toBe(false);
320
- expect(res2).toBe(false);
321
- });
322
- test('Некорректные базовые значения не проходят проверку', () => {
323
- const values = [
324
- '123',
325
- ['a', 'b', 'c']
326
- ];
327
- const isEveryFalse = checkEveryValue(values, (v) => _validations.lengthMax(v, 2), false);
328
- expect(isEveryFalse).toBe(true);
329
- });
330
- test('Корректные значения проходят проверку', () => {
331
- const values = [
332
- '123',
333
- '12',
334
- ['1', '2', '3'],
335
- ['1', '2']
336
- ];
337
- const isEveryTrue = checkEveryValue(values, (v) => _validations.lengthMax(v, 3), true);
338
- expect(isEveryTrue).toBe(true);
339
- });
340
- });
341
- describe('Тест _validations.isNumberGte', () => {
342
- test('Отсутствие аргументов вызывает ответ false', () => {
343
- const res1 = _validations.isNumberGte(1);
344
- const res2 = _validations.isNumberGte();
345
- expect(res1).toBe(false);
346
- expect(res2).toBe(false);
347
- });
348
- test('Некорректные базовые значения не проходят проверку', () => {
349
- const values = [
350
- 1,
351
- 2,
352
- 3
353
- ];
354
- const isEveryFalse = checkEveryValue(values, (v) => _validations.isNumberGte(v, 4), false);
355
- expect(isEveryFalse).toBe(true);
356
- });
357
- test('Корректные значения проходят проверку', () => {
358
- const values = [
359
- 4,
360
- 5,
361
- 6
362
- ];
363
- const isEveryTrue = checkEveryValue(values, (v) => _validations.isNumberGte(v, 4), true);
364
- expect(isEveryTrue).toBe(true);
365
- });
366
- });
367
- describe('Тест _validations.isNumberGt', () => {
368
- test('Отсутствие аргументов вызывает ответ false', () => {
369
- const res1 = _validations.isNumberGt(1);
370
- const res2 = _validations.isNumberGt();
371
- expect(res1).toBe(false);
372
- expect(res2).toBe(false);
373
- });
374
- test('Некорректные базовые значения не проходят проверку', () => {
375
- const values = [
376
- 1,
377
- 2,
378
- 3
379
- ];
380
- const isEveryFalse = checkEveryValue(values, (v) => {
381
- return _validations.isNumberGt(v, 3);
382
- }, false);
383
- expect(isEveryFalse).toBe(true);
384
- });
385
- test('Корректные значения проходят проверку', () => {
386
- const values = [
387
- 4,
388
- 5,
389
- 6
390
- ];
391
- const isEveryTrue = checkEveryValue(values, (v) => {
392
- return _validations.isNumberGt(v, 3);
393
- }, true);
394
- expect(isEveryTrue).toBe(true);
395
- });
396
- });
397
- describe('Тест _validations.isNumberLte', () => {
398
- test('Отсутствие аргументов вызывает ответ false', () => {
399
- const res1 = _validations.isNumberLte(1);
400
- const res2 = _validations.isNumberLte();
401
- expect(res1).toBe(false);
402
- expect(res2).toBe(false);
403
- });
404
- test('Некорректные базовые значения не проходят проверку', () => {
405
- const values = [
406
- 4,
407
- 5,
408
- 6
409
- ];
410
- const isEveryFalse = checkEveryValue(values, (v) => _validations.isNumberLte(v, 3), false);
411
- expect(isEveryFalse).toBe(true);
412
- });
413
- test('Корректные значения проходят проверку', () => {
414
- const values = [
415
- 1,
416
- 2,
417
- 3
418
- ];
419
- const isEveryTrue = checkEveryValue(values, (v) => _validations.isNumberLte(v, 3), true);
420
- expect(isEveryTrue).toBe(true);
421
- });
422
- test('Тест алиасов', () => {
423
- expect(_validations.lte === _validations.isNumberLte).toBe(true);
424
- });
425
- });
426
- describe('Тест _validations.isNumberLt', () => {
427
- test('Отсутствие аргументов вызывает ответ false', () => {
428
- const res1 = _validations.isNumberLt(1);
429
- const res2 = _validations.isNumberLt();
430
- expect(res1).toBe(false);
431
- expect(res2).toBe(false);
432
- });
433
- test('Некорректные базовые значения не проходят проверку', () => {
434
- const values = [
435
- 4,
436
- 5,
437
- 6
438
- ];
439
- const isEveryFalse = checkEveryValue(values, (v) => _validations.isNumberLt(v, 4), false);
440
- expect(isEveryFalse).toBe(true);
441
- });
442
- test('Корректные значения проходят проверку', () => {
443
- const values = [
444
- 1,
445
- 2,
446
- 3
447
- ];
448
- const isEveryTrue = checkEveryValue(values, (v) => _validations.isNumberLt(v, 4), true);
449
- expect(isEveryTrue).toBe(true);
450
- });
451
- test('Тест алиасов', () => {
452
- expect(_validations.lt === _validations.isNumberLt).toBe(true);
453
- });
454
- });
455
- describe('Тест _validations.hasKey', () => {
456
- const testKey = 'xyz';
457
- test('Отсутствие аргументов вызывает ответ false', () => {
458
- const res1 = _validations.hasKey({});
459
- const res2 = _validations.hasKey();
460
- expect(res1).toBe(false);
461
- expect(res2).toBe(false);
462
- });
463
- test('Некорректные базовые значения не проходят проверку', () => {
464
- const values = [
465
- { x: 1 },
466
- { y: 2 },
467
- { z: 3 }
468
- ];
469
- const isEveryFalse = checkEveryValue(values, (v) => _validations.hasKey(v, testKey), false);
470
- expect(isEveryFalse).toBe(true);
471
- });
472
- test('Корректные значения проходят проверку', () => {
473
- const values = [
474
- { xyz: 1, y: 2, z: 3 },
475
- { xyz: 1, a: 2, b: 3 },
476
- { xyz: 1, xx: 2, xxx: 3 }
477
- ];
478
- const isEveryTrue = checkEveryValue(values, (v) => _validations.hasKey(v, testKey), true);
479
- expect(isEveryTrue).toBe(true);
480
- });
481
- });
482
- describe('Тест _validations.is', () => {
483
- test('Отсутствие аргументов вызывает корректный ответ', () => {
484
- expect(_validations.is('a')).toBe(false);
485
- expect(_validations.is()).toBe(true);
486
- });
487
- test('Несовпадающие значения возвращает false при проверке', () => {
488
- const results = [];
489
- const toBeChecked = [
490
- ['string', 'string2'],
491
- ['string', 1],
492
- [1, 'string'],
493
- [[0], { x: 1 }],
494
- [null, true],
495
- [true, null],
496
- [true, false],
497
- [[0], [1]],
498
- ];
499
- toBeChecked.forEach(arr => {
500
- results.push(_validations.is(arr[0], arr[1]));
501
- });
502
- const isEveryTrue = Object.values(results).every(v => v === false);
503
- expect(isEveryTrue).toBe(true);
504
- });
505
- test('Совпадающие значения возвращают true при проверке', () => {
506
- const dateA = new Date(2025, 0, 1, 0, 0, 0, 0);
507
- const dateB = new Date(2025, 0, 1, 0, 0, 0, 0);
508
- const toBeChecked = {
509
- boolean: [true, true],
510
- null: [null, null],
511
- string: ['string', 'string'],
512
- number: [1, 1],
513
- array1: [[1, 2], [1, 2]],
514
- array2: [['a'], ['a']],
515
- obj: [{ x: 1, z: 2 }, { x: 1, z: 2 }],
516
- dates: [dateA, dateB]
517
- };
518
- const results = {};
519
- for (const [key, values] of Object.entries(toBeChecked)) {
520
- results[key] = _validations.is(values[0], values[1]);
521
- }
522
- expect(results.boolean).toBe(true);
523
- expect(results.null).toBe(true);
524
- expect(results.string).toBe(true);
525
- expect(results.number).toBe(true);
526
- expect(results.array1).toBe(true);
527
- expect(results.array2).toBe(true);
528
- expect(results.obj).toBe(true);
529
- expect(results.dates).toBe(true);
530
- });
531
- test('Тест алиасов', () => {
532
- expect(_validations.eq === _validations.is).toBe(true);
533
- });
534
- });
535
- describe('Тест _validations.not', () => {
536
- test('Отсутствие аргументов вызывает корректный ответ', () => {
537
- expect(_validations.not('a')).toBe(true);
538
- expect(_validations.not()).toBe(false);
539
- });
540
- test('Несовпадающие значения возвращает true при проверке', () => {
541
- const results = [];
542
- const toBeChecked = [
543
- ['string', 'string2'],
544
- ['string', 1],
545
- [1, 'string'],
546
- [[0], { x: 1 }],
547
- [null, true],
548
- [true, null],
549
- [true, false],
550
- [[0], [1]],
551
- ];
552
- toBeChecked.forEach(arr => {
553
- results.push(_validations.not(arr[0], arr[1]));
554
- });
555
- const isEveryTrue = Object.values(results).every(v => v === true);
556
- expect(isEveryTrue).toBe(true);
557
- });
558
- test('Совпадающие значения возвращают false при проверке', () => {
559
- const dateA = new Date(2025, 0, 1, 0, 0, 0, 0);
560
- const dateB = new Date(2025, 0, 1, 0, 0, 0, 0);
561
- const toBeChecked = {
562
- boolean: [true, true],
563
- null: [null, null],
564
- string: ['string', 'string'],
565
- number: [1, 1],
566
- array1: [[1, 2], [1, 2]],
567
- array2: [['a'], ['a']],
568
- obj: [{ x: 1, z: 2 }, { x: 1, z: 2 }],
569
- dates: [dateA, dateB]
570
- };
571
- const results = {};
572
- for (const [key, values] of Object.entries(toBeChecked)) {
573
- results[key] = _validations.not(values[0], values[1]);
574
- }
575
- expect(results.boolean).toBe(false);
576
- expect(results.null).toBe(false);
577
- expect(results.string).toBe(false);
578
- expect(results.number).toBe(false);
579
- expect(results.array1).toBe(false);
580
- expect(results.array2).toBe(false);
581
- expect(results.obj).toBe(false);
582
- expect(results.dates).toBe(false);
583
- });
584
- test('Тест алиасов', () => {
585
- expect(_validations.isNot === _validations.not).toBe(true);
586
- expect(_validations.ne === _validations.not).toBe(true);
587
- expect(_validations.neq === _validations.not).toBe(true);
588
- });
589
- });
590
- describe('Тест _validations.regexp', () => {
591
- test('Отсутствие аргументов вызывает корректный ответ', () => {
592
- expect(() => _validations.regexp('a')).toThrow();
593
- expect(() => _validations.regexp()).toThrow();
594
- });
595
- test('Несовпадающие значения возвращает false при проверке', () => {
596
- const results = [];
597
- const toBeChecked = [
598
- ['string', /^xxstr.*/],
599
- ['string', /string2/],
600
- ['1', /2/],
601
- ];
602
- toBeChecked.forEach(arr => {
603
- results.push(_validations.regexp(arr[0], arr[1]));
604
- });
605
- const isEveryTrue = Object.values(results).every(v => v === false);
606
- expect(isEveryTrue).toBe(true);
607
- });
608
- test('Совпадающие значения возвращают true при проверке', () => {
609
- const results = [];
610
- const toBeChecked = [
611
- ['string', /^str.*/],
612
- ['string', /string/],
613
- ['1', /1/],
614
- ['name@mail.com', /^[^\s@]+@[^\s@]+\.[^\s@]+$/],
615
- ];
616
- toBeChecked.forEach(arr => {
617
- results.push(_validations.regexp(arr[0], arr[1]));
618
- });
619
- const isEveryTrue = Object.values(results).every(v => v === true);
620
- expect(isEveryTrue).toBe(true);
621
- });
622
- test('Тест алиасов', () => {
623
- expect(_validations.regexp === _validations.regexTested).toBe(true);
624
- expect(_validations.regex === _validations.regexTested).toBe(true);
625
- expect(_validations.test === _validations.regexTested).toBe(true);
626
- });
627
- });
628
- describe('Тест _validations.isDateLte', () => {
629
- test('Отсутствие аргументов вызывает ответ false', () => {
630
- const res1 = _validations.isDateLte(new Date());
631
- const res2 = _validations.isDateLte();
632
- expect(res1).toBe(false);
633
- expect(res2).toBe(false);
634
- });
635
- test('Некорректные базовые значения не проходят проверку', () => {
636
- const now = new Date();
637
- const values = [
638
- new Date('2029-01-01'),
639
- new Date('2123-01-01'),
640
- new Date('2050-05-05')
641
- ];
642
- expect(_validations.isDateLte(values[0], now)).toBe(false);
643
- expect(_validations.isDateLte(values[1], now)).toBe(false);
644
- expect(_validations.isDateLte(values[2], now)).toBe(false);
645
- });
646
- test('Корректные значения проходят проверку', () => {
647
- const now = new Date();
648
- const now2 = new Date(now);
649
- const nowMinusMin = new Date();
650
- nowMinusMin.setMinutes(now.getMinutes() - 1);
651
- const values = [
652
- new Date('2020-01-01'),
653
- new Date('2024-01-01'),
654
- new Date('1990-01-01'),
655
- nowMinusMin,
656
- now2
657
- ];
658
- expect(_validations.isDateLte(values[0], now)).toBe(true);
659
- expect(_validations.isDateLte(values[1], now)).toBe(true);
660
- expect(_validations.isDateLte(values[2], now)).toBe(true);
661
- expect(_validations.isDateLte(values[3], now)).toBe(true);
662
- expect(_validations.isDateLte(values[4], now)).toBe(true);
663
- });
664
- });
665
- describe('Тест _validations.isDateLt', () => {
666
- test('Отсутствие аргументов вызывает ответ false', () => {
667
- const res1 = _validations.isDateLt(new Date());
668
- const res2 = _validations.isDateLt();
669
- expect(res1).toBe(false);
670
- expect(res2).toBe(false);
671
- });
672
- test('Некорректные базовые значения не проходят проверку', () => {
673
- const now = new Date();
674
- const now2 = new Date(now);
675
- const values = [
676
- new Date('2029-01-01'),
677
- new Date('2123-01-01'),
678
- new Date('2050-05-05')
679
- ];
680
- expect(_validations.isDateLt(values[0], now)).toBe(false);
681
- expect(_validations.isDateLt(values[1], now)).toBe(false);
682
- expect(_validations.isDateLt(values[2], now)).toBe(false);
683
- expect(_validations.isDateLt(now2, now)).toBe(false);
684
- });
685
- test('Корректные значения проходят проверку', () => {
686
- const now = new Date();
687
- const nowMinusMin = new Date();
688
- nowMinusMin.setMinutes(now.getMinutes() - 1);
689
- const values = [
690
- new Date('2020-01-01'),
691
- new Date('2024-01-01'),
692
- new Date('1990-01-01'),
693
- nowMinusMin,
694
- ];
695
- expect(_validations.isDateLt(values[0], now)).toBe(true);
696
- expect(_validations.isDateLt(values[1], now)).toBe(true);
697
- expect(_validations.isDateLt(values[2], now)).toBe(true);
698
- expect(_validations.isDateLt(values[3], now)).toBe(true);
699
- });
700
- });
701
- describe('Тест _validations.isDateGte', () => {
702
- test('Отсутствие аргументов вызывает ответ false', () => {
703
- const res1 = _validations.isDateGte(new Date());
704
- const res2 = _validations.isDateGte();
705
- expect(res1).toBe(false);
706
- expect(res2).toBe(false);
707
- });
708
- test('Некорректные базовые значения не проходят проверку', () => {
709
- const now = new Date();
710
- const values = [
711
- new Date('2029-01-01'),
712
- new Date('2123-01-01'),
713
- new Date('2050-05-05')
714
- ];
715
- expect(_validations.isDateGte(now, values[0])).toBe(false);
716
- expect(_validations.isDateGte(now, values[1])).toBe(false);
717
- expect(_validations.isDateGte(now, values[2])).toBe(false);
718
- });
719
- test('Корректные значения проходят проверку', () => {
720
- const now = new Date();
721
- const now2 = new Date(now);
722
- const nowMinusMin = new Date();
723
- nowMinusMin.setMinutes(now.getMinutes() - 1);
724
- const values = [
725
- new Date('2020-01-01'),
726
- new Date('2024-01-01'),
727
- new Date('1990-01-01'),
728
- nowMinusMin,
729
- now2
730
- ];
731
- expect(_validations.isDateGte(now, values[0])).toBe(true);
732
- expect(_validations.isDateGte(now, values[1])).toBe(true);
733
- expect(_validations.isDateGte(now, values[2])).toBe(true);
734
- expect(_validations.isDateGte(now, values[3])).toBe(true);
735
- expect(_validations.isDateGte(now, values[4])).toBe(true);
736
- });
737
- });
738
- describe('Тест _validations.isDateLt', () => {
739
- test('Отсутствие аргументов вызывает ответ false', () => {
740
- const res1 = _validations.isDateLt(new Date());
741
- const res2 = _validations.isDateLt();
742
- expect(res1).toBe(false);
743
- expect(res2).toBe(false);
744
- });
745
- test('Некорректные базовые значения не проходят проверку', () => {
746
- const now = new Date();
747
- const now2 = new Date(now);
748
- const values = [
749
- new Date('2021-01-01'),
750
- new Date('2024-01-01'),
751
- new Date('2000-01-01')
752
- ];
753
- expect(_validations.isDateGt(values[0], now)).toBe(false);
754
- expect(_validations.isDateGt(values[1], now)).toBe(false);
755
- expect(_validations.isDateGt(values[2], now)).toBe(false);
756
- expect(_validations.isDateGt(now2, now)).toBe(false);
757
- });
758
- test('Корректные значения проходят проверку', () => {
759
- const now = new Date();
760
- const nowPlusMin = new Date();
761
- nowPlusMin.setMinutes(now.getMinutes() + 1);
762
- const values = [
763
- new Date('2030-01-01'),
764
- new Date('2029-01-01'),
765
- new Date('2100-12-31'),
766
- nowPlusMin,
767
- ];
768
- expect(_validations.isDateGt(values[0], now)).toBe(true);
769
- expect(_validations.isDateGt(values[1], now)).toBe(true);
770
- expect(_validations.isDateGt(values[2], now)).toBe(true);
771
- expect(_validations.isDateGt(values[3], now)).toBe(true);
772
- });
773
- });