validno 0.4.4 → 0.4.6

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 (44) hide show
  1. package/dist/dev.d.ts +6 -1
  2. package/dist/dev.d.ts.map +1 -1
  3. package/dist/dev.js +130 -5
  4. package/dist/engine/methods/validateRules.d.ts.map +1 -1
  5. package/dist/engine/methods/validateRules.js +6 -5
  6. package/dist/engine/methods/validateType.d.ts.map +1 -1
  7. package/dist/engine/methods/validateType.js +4 -0
  8. package/package.json +1 -1
  9. package/dist/tests/cases/corruptedData.test.d.ts +0 -2
  10. package/dist/tests/cases/corruptedData.test.d.ts.map +0 -1
  11. package/dist/tests/cases/corruptedData.test.js +0 -81
  12. package/dist/tests/cases/dataInputIsNotAnObject.test.d.ts +0 -2
  13. package/dist/tests/cases/dataInputIsNotAnObject.test.d.ts.map +0 -1
  14. package/dist/tests/cases/dataInputIsNotAnObject.test.js +0 -24
  15. package/dist/tests/cases/notRequiredNestedKey.test.d.ts +0 -2
  16. package/dist/tests/cases/notRequiredNestedKey.test.d.ts.map +0 -1
  17. package/dist/tests/cases/notRequiredNestedKey.test.js +0 -38
  18. package/dist/tests/cases/secondLevelDeepValidates.test.d.ts +0 -2
  19. package/dist/tests/cases/secondLevelDeepValidates.test.d.ts.map +0 -1
  20. package/dist/tests/cases/secondLevelDeepValidates.test.js +0 -112
  21. package/dist/tests/customMessage.test.d.ts +0 -2
  22. package/dist/tests/customMessage.test.d.ts.map +0 -1
  23. package/dist/tests/customMessage.test.js +0 -102
  24. package/dist/tests/customType.test.d.ts +0 -2
  25. package/dist/tests/customType.test.d.ts.map +0 -1
  26. package/dist/tests/customType.test.js +0 -146
  27. package/dist/tests/joinErrors.test.d.ts +0 -2
  28. package/dist/tests/joinErrors.test.d.ts.map +0 -1
  29. package/dist/tests/joinErrors.test.js +0 -62
  30. package/dist/tests/missing.test.d.ts +0 -2
  31. package/dist/tests/missing.test.d.ts.map +0 -1
  32. package/dist/tests/missing.test.js +0 -224
  33. package/dist/tests/onlyKeys.test.d.ts +0 -2
  34. package/dist/tests/onlyKeys.test.d.ts.map +0 -1
  35. package/dist/tests/onlyKeys.test.js +0 -74
  36. package/dist/tests/types.test.d.ts +0 -2
  37. package/dist/tests/types.test.d.ts.map +0 -1
  38. package/dist/tests/types.test.js +0 -273
  39. package/dist/tests/utils/_errors.test.d.ts +0 -2
  40. package/dist/tests/utils/_errors.test.d.ts.map +0 -1
  41. package/dist/tests/utils/_errors.test.js +0 -47
  42. package/dist/tests/utils/_validations.test.d.ts +0 -2
  43. package/dist/tests/utils/_validations.test.d.ts.map +0 -1
  44. package/dist/tests/utils/_validations.test.js +0 -773
@@ -1,273 +0,0 @@
1
- import { Schema } from '../Schema';
2
- import { describe, expect, test } from '@jest/globals';
3
- describe('Проверка каждого типа по отдельности', () => {
4
- test('Тест String', () => {
5
- const key = 'testKey';
6
- const scheme = new Schema({
7
- [key]: {
8
- required: true,
9
- type: String
10
- }
11
- });
12
- const objOK = {
13
- [key]: 'string'
14
- };
15
- const resOK = scheme.validate(objOK);
16
- expect(resOK.ok).toBe(true);
17
- expect(resOK.passed.includes(key)).toBe(true);
18
- expect(resOK.byKeys[key]).toBe(true);
19
- const objBad = {
20
- [key]: 1
21
- };
22
- const resBad = scheme.validate(objBad);
23
- expect(resBad.ok).toBe(false);
24
- expect(resBad.failed.includes(key)).toBe(true);
25
- expect(resBad.passed.includes(key)).toBe(false);
26
- expect(resBad.byKeys[key]).toBe(false);
27
- });
28
- test('Тест Number', () => {
29
- const key = 'testKey';
30
- const scheme = new Schema({
31
- [key]: {
32
- required: true,
33
- type: Number
34
- }
35
- });
36
- const objOK = {
37
- [key]: 111
38
- };
39
- const resOK = scheme.validate(objOK);
40
- expect(resOK.ok).toBe(true);
41
- expect(resOK.passed.includes(key)).toBe(true);
42
- expect(resOK.byKeys[key]).toBe(true);
43
- const objBad = {
44
- [key]: 'string'
45
- };
46
- const resBad = scheme.validate(objBad);
47
- expect(resBad.ok).toBe(false);
48
- expect(resBad.failed.includes(key)).toBe(true);
49
- expect(resBad.passed.includes(key)).toBe(false);
50
- expect(resBad.byKeys[key]).toBe(false);
51
- });
52
- test('Тест Boolean', () => {
53
- const key = 'testKey';
54
- const scheme = new Schema({
55
- [key]: {
56
- required: true,
57
- type: Boolean
58
- }
59
- });
60
- const objOK = {
61
- [key]: true
62
- };
63
- const resOK = scheme.validate(objOK);
64
- expect(resOK.ok).toBe(true);
65
- expect(resOK.passed.includes(key)).toBe(true);
66
- expect(resOK.byKeys[key]).toBe(true);
67
- const objBad = {
68
- [key]: 'false'
69
- };
70
- const resBad = scheme.validate(objBad);
71
- expect(resBad.ok).toBe(false);
72
- expect(resBad.failed.includes(key)).toBe(true);
73
- expect(resBad.passed.includes(key)).toBe(false);
74
- expect(resBad.byKeys[key]).toBe(false);
75
- });
76
- test('Тест Array', () => {
77
- const key = 'testKey';
78
- const scheme = new Schema({
79
- [key]: {
80
- required: true,
81
- type: Array
82
- }
83
- });
84
- const objOK = {
85
- [key]: []
86
- };
87
- const objOK2 = {
88
- [key]: [1, 2, 3]
89
- };
90
- const resOK = scheme.validate(objOK);
91
- expect(resOK.ok).toBe(true);
92
- expect(resOK.passed.includes(key)).toBe(true);
93
- expect(resOK.byKeys[key]).toBe(true);
94
- const resOK2 = scheme.validate(objOK2);
95
- expect(resOK2.ok).toBe(true);
96
- expect(resOK2.passed.includes(key)).toBe(true);
97
- expect(resOK2.byKeys[key]).toBe(true);
98
- const objBad = {
99
- [key]: 'not array'
100
- };
101
- const resBad = scheme.validate(objBad);
102
- expect(resBad.ok).toBe(false);
103
- expect(resBad.failed.includes(key)).toBe(true);
104
- expect(resBad.passed.includes(key)).toBe(false);
105
- expect(resBad.byKeys[key]).toBe(false);
106
- });
107
- test('Тест null', () => {
108
- const key = 'testKey';
109
- const scheme = new Schema({
110
- [key]: {
111
- required: true,
112
- type: null
113
- }
114
- });
115
- const objOK = {
116
- [key]: null
117
- };
118
- const resOK = scheme.validate(objOK);
119
- expect(resOK.ok).toBe(true);
120
- expect(resOK.passed.includes(key)).toBe(true);
121
- expect(resOK.byKeys[key]).toBe(true);
122
- const objBad = {
123
- [key]: 'not null'
124
- };
125
- const resBad = scheme.validate(objBad);
126
- expect(resBad.ok).toBe(false);
127
- expect(resBad.failed.includes(key)).toBe(true);
128
- expect(resBad.passed.includes(key)).toBe(false);
129
- expect(resBad.byKeys[key]).toBe(false);
130
- });
131
- test('Тест Date', () => {
132
- const key = 'testKey';
133
- const scheme = new Schema({
134
- [key]: {
135
- required: true,
136
- type: Date
137
- }
138
- });
139
- const objOK = {
140
- [key]: new Date()
141
- };
142
- const resOK = scheme.validate(objOK);
143
- expect(resOK.ok).toBe(true);
144
- expect(resOK.passed.includes(key)).toBe(true);
145
- expect(resOK.byKeys[key]).toBe(true);
146
- const objBad = {
147
- [key]: 'not date'
148
- };
149
- const resBad = scheme.validate(objBad);
150
- expect(resBad.ok).toBe(false);
151
- expect(resBad.failed.includes(key)).toBe(true);
152
- expect(resBad.passed.includes(key)).toBe(false);
153
- expect(resBad.byKeys[key]).toBe(false);
154
- });
155
- test('Тест Object', () => {
156
- const key = 'testKey';
157
- const scheme = new Schema({
158
- [key]: {
159
- required: true,
160
- type: Object
161
- }
162
- });
163
- const objOK = {
164
- [key]: { test: 1 }
165
- };
166
- const resOK = scheme.validate(objOK);
167
- expect(resOK.ok).toBe(true);
168
- expect(resOK.passed.includes(key)).toBe(true);
169
- expect(resOK.byKeys[key]).toBe(true);
170
- const objBad = {
171
- [key]: 'not obj'
172
- };
173
- const resBad = scheme.validate(objBad);
174
- expect(resBad.ok).toBe(false);
175
- expect(resBad.failed.includes(key)).toBe(true);
176
- expect(resBad.passed.includes(key)).toBe(false);
177
- expect(resBad.byKeys[key]).toBe(false);
178
- });
179
- });
180
- describe("Проверка всех типов сразу", () => {
181
- test('Тест всех типов с корректными данными', () => {
182
- const schema = new Schema({
183
- str: {
184
- type: String,
185
- },
186
- obj: {
187
- type: Object,
188
- },
189
- num: {
190
- type: Number,
191
- },
192
- arr: {
193
- type: Array,
194
- },
195
- null: {
196
- type: null,
197
- },
198
- bool: {
199
- type: Boolean,
200
- },
201
- date: {
202
- type: Date
203
- }
204
- });
205
- const obj = {
206
- str: 'String',
207
- obj: {},
208
- num: 1,
209
- arr: [1, 2, 3],
210
- null: null,
211
- bool: true,
212
- date: new Date()
213
- };
214
- const res = schema.validate(obj);
215
- const arePassed = [];
216
- for (const key in obj) {
217
- arePassed.push(res.byKeys[key]);
218
- }
219
- expect(res.ok).toBe(true);
220
- expect(arePassed.every(el => el === true)).toBe(true);
221
- expect(res.errors.length).toBe(0);
222
- });
223
- test('Тест всех типов с некорректными данными', () => {
224
- const schema = new Schema({
225
- str: {
226
- type: String,
227
- },
228
- obj: {
229
- type: Object,
230
- },
231
- num: {
232
- type: Number,
233
- },
234
- arr: {
235
- type: Array,
236
- },
237
- null: {
238
- type: null,
239
- },
240
- bool: {
241
- type: Boolean,
242
- },
243
- date: {
244
- type: Date
245
- },
246
- test: {
247
- type: Object,
248
- required: true
249
- }
250
- });
251
- const obj = {
252
- str: 123,
253
- obj: [],
254
- num: 'str',
255
- arr: null,
256
- null: {},
257
- bool: new Date(),
258
- date: true,
259
- test: undefined
260
- };
261
- const res = schema.validate(obj);
262
- expect(res.ok).toBe(false);
263
- const areFailed = [];
264
- const hasErrorMsg = [];
265
- for (const key in obj) {
266
- areFailed.push(res.byKeys[key]);
267
- hasErrorMsg.push(key in res.errorsByKeys);
268
- }
269
- expect(areFailed.every(el => el === false)).toBe(true);
270
- expect(hasErrorMsg.every(el => el === true)).toBe(true);
271
- expect(res.errors.length).toBe(Object.keys(obj).length);
272
- });
273
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_errors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_errors.test.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/_errors.test.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- import { expect, test } from '@jest/globals';
2
- import _errors from '../../utils/errors';
3
- test('Тест _errors.getMissingError', () => {
4
- const key = 'testKey';
5
- const emptyKey = _errors.getMissingError();
6
- const okKey = _errors.getMissingError(key);
7
- expect(emptyKey).toBe(`Missing value for 'na'`);
8
- expect(okKey).toBe(`Missing value for '${key}'`);
9
- });
10
- test('Тест _errors.joinErrors', () => {
11
- const defaultSeparator = '; ';
12
- const customSeparator = '||';
13
- const emptyErrorMsg = _errors.joinErrors([]);
14
- const oneErrorMsg = _errors.joinErrors(['X']);
15
- const multipleErrorMsg = _errors.joinErrors(['X', 'Y', 'Z']);
16
- const customSeparatorErrorMsg = _errors.joinErrors(['X', 'Y', 'Z'], customSeparator);
17
- expect(emptyErrorMsg).toBe('');
18
- expect(oneErrorMsg).toBe('X');
19
- expect(multipleErrorMsg).toBe('X' + defaultSeparator + 'Y' + defaultSeparator + 'Z');
20
- expect(customSeparatorErrorMsg).toBe('X' + customSeparator + 'Y' + customSeparator + 'Z');
21
- });
22
- test('Тест _errors.getErrorDetails', () => {
23
- class CustomTest {
24
- test() {
25
- return true;
26
- }
27
- }
28
- const customObj = new CustomTest();
29
- const key = 'key';
30
- const errorNull = _errors.getErrorDetails(key, String, null);
31
- const errorUndefined = _errors.getErrorDetails(key, Array, undefined);
32
- const errorObject = _errors.getErrorDetails(key, Object, []);
33
- const errorBoolean = _errors.getErrorDetails(key, Boolean, 190);
34
- const errorCustom = _errors.getErrorDetails(key, Object, customObj);
35
- const errorUnknown = _errors.getErrorDetails(key, Number, undefined);
36
- const okCustom = _errors.getErrorDetails(key, CustomTest, customObj);
37
- const getError = (key, expected, received) => {
38
- return `Check the type of '${key}': expected ${expected}, received ${received}`;
39
- };
40
- expect(errorNull).toBe(getError(key, 'String', 'null'));
41
- expect(errorUndefined).toBe(getError(key, 'Array', 'undefined'));
42
- expect(errorObject).toBe(getError(key, 'Object', 'Array'));
43
- expect(errorBoolean).toBe(getError(key, 'Boolean', 'Number'));
44
- expect(errorCustom).toBe(getError(key, 'Object', 'CustomTest'));
45
- expect(errorUnknown).toBe(getError(key, 'Number', 'undefined'));
46
- expect(okCustom).toBe('');
47
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_validations.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_validations.test.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/_validations.test.ts"],"names":[],"mappings":""}