validno 0.1.8 → 0.1.10

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.
@@ -1,131 +0,0 @@
1
- import {describe, expect, test} from '@jest/globals';
2
- import { Schema } from '../dist/Schema.js';
3
- import _errors from '../dist/utils/errors.js';
4
-
5
- describe('Тестирование обработки пропущенных свойста', () => {
6
- test('Отсутствующий ключ правильно отображается в результате', () => {
7
- const missedKey = 'testKey'
8
- const missedKey2 = 'testKey2'
9
-
10
- const okKey = 'okKey'
11
-
12
- const scheme = new Schema({
13
- [missedKey]: {
14
- required: true,
15
- type: String
16
- },
17
- [missedKey2]: {
18
- required: true,
19
- type: String
20
- },
21
- [okKey]: {
22
- required: true,
23
- type: String
24
- }
25
- })
26
-
27
- const obj = {
28
- [okKey]: 'string'
29
- }
30
-
31
- const result = scheme.validate(obj)
32
-
33
- expect(result).toEqual({
34
- ok: false,
35
- failed: [missedKey, missedKey2],
36
- missed: [missedKey, missedKey2],
37
- errors: [
38
- _errors.getMissingError(missedKey),
39
- _errors.getMissingError(missedKey2)
40
- ],
41
- passed: [okKey],
42
- byKeys: {
43
- [missedKey]: false,
44
- [missedKey2]: false,
45
- [okKey]: true
46
- },
47
- errorsByKeys: {
48
- [okKey]: [],
49
- [missedKey]: [_errors.getMissingError(missedKey)],
50
- [missedKey2]: [_errors.getMissingError(missedKey2)]
51
- }
52
- })
53
- })
54
-
55
- test('Присутствующий ключ правильно отображается в результате', () => {
56
- const key = 'testKey'
57
- const key2 = 'testKey2'
58
-
59
- const scheme = new Schema({
60
- [key]: {
61
- required: true,
62
- type: String
63
- },
64
- [key2]: {
65
- required: true,
66
- type: String
67
- }
68
- })
69
-
70
- const obj = {
71
- [key]: 'string',
72
- [key2]: 'string'
73
- }
74
-
75
- const result = scheme.validate(obj)
76
-
77
- expect(result).toEqual({
78
- ok: true,
79
- failed: [],
80
- missed: [],
81
- errors: [],
82
- passed: [key, key2],
83
- byKeys: {
84
- [key]: true,
85
- [key2]: true
86
- },
87
- errorsByKeys: {
88
- [key]: [],
89
- [key2]: []
90
- }
91
- })
92
- })
93
-
94
- test('Отсутствующий необязательный ключ правильно отображается в результах', () => {
95
- const key = 'testKey'
96
- const key2 = 'testKey2'
97
-
98
- const scheme = new Schema({
99
- [key]: {
100
- required: false,
101
- type: String
102
- },
103
- [key2]: {
104
- required: true,
105
- type: String
106
- }
107
- })
108
-
109
- const obj = {
110
- [key2]: 'string'
111
- }
112
-
113
- const result = scheme.validate(obj)
114
-
115
- expect(result).toEqual({
116
- ok: true,
117
- failed: [],
118
- missed: [],
119
- errors: [],
120
- passed: [key, key2],
121
- byKeys: {
122
- [key]: true,
123
- [key2]: true
124
- },
125
- errorsByKeys: {
126
- [key]: [],
127
- [key2]: []
128
- }
129
- })
130
- })
131
- })
@@ -1,316 +0,0 @@
1
- import {describe, expect, test} from '@jest/globals';
2
- import { Schema } from '../dist/Schema.js';
3
-
4
- describe('Проверка каждого типа по отдельности', () => {
5
- test('Тест String', () => {
6
- const key = 'testKey'
7
- const scheme = new Schema({
8
- [key]: {
9
- required: true,
10
- type: String
11
- }
12
- })
13
- const objOK = {
14
- [key]: 'string'
15
- }
16
-
17
- const resOK = scheme.validate(objOK)
18
-
19
- expect(resOK.ok).toBe(true)
20
- expect(resOK.passed.includes(key)).toBe(true)
21
- expect(resOK.byKeys[key]).toBe(true)
22
-
23
- const objBad = {
24
- [key]: 1
25
- }
26
-
27
- const resBad = scheme.validate(objBad)
28
- expect(resBad.ok).toBe(false)
29
- expect(resBad.failed.includes(key)).toBe(true)
30
- expect(resBad.passed.includes(key)).toBe(false)
31
- expect(resBad.byKeys[key]).toBe(false)
32
- })
33
-
34
- test('Тест Number', () => {
35
- const key = 'testKey'
36
- const scheme = new Schema({
37
- [key]: {
38
- required: true,
39
- type: Number
40
- }
41
- })
42
- const objOK = {
43
- [key]: 111
44
- }
45
-
46
- const resOK = scheme.validate(objOK)
47
-
48
- expect(resOK.ok).toBe(true)
49
- expect(resOK.passed.includes(key)).toBe(true)
50
- expect(resOK.byKeys[key]).toBe(true)
51
-
52
- const objBad = {
53
- [key]: 'string'
54
- }
55
-
56
- const resBad = scheme.validate(objBad)
57
- expect(resBad.ok).toBe(false)
58
- expect(resBad.failed.includes(key)).toBe(true)
59
- expect(resBad.passed.includes(key)).toBe(false)
60
- expect(resBad.byKeys[key]).toBe(false)
61
- })
62
-
63
- test('Тест Boolean', () => {
64
- const key = 'testKey'
65
- const scheme = new Schema({
66
- [key]: {
67
- required: true,
68
- type: Boolean
69
- }
70
- })
71
- const objOK = {
72
- [key]: true
73
- }
74
-
75
- const resOK = scheme.validate(objOK)
76
-
77
- expect(resOK.ok).toBe(true)
78
- expect(resOK.passed.includes(key)).toBe(true)
79
- expect(resOK.byKeys[key]).toBe(true)
80
-
81
- const objBad = {
82
- [key]: 'false'
83
- }
84
-
85
- const resBad = scheme.validate(objBad)
86
- expect(resBad.ok).toBe(false)
87
- expect(resBad.failed.includes(key)).toBe(true)
88
- expect(resBad.passed.includes(key)).toBe(false)
89
- expect(resBad.byKeys[key]).toBe(false)
90
- })
91
-
92
- test('Тест Array', () => {
93
- const key = 'testKey'
94
- const scheme = new Schema({
95
- [key]: {
96
- required: true,
97
- type: Array
98
- }
99
- })
100
- const objOK = {
101
- [key]: []
102
- }
103
-
104
- const objOK2 = {
105
- [key]: [1,2,3]
106
- }
107
-
108
- const resOK = scheme.validate(objOK)
109
- expect(resOK.ok).toBe(true)
110
- expect(resOK.passed.includes(key)).toBe(true)
111
- expect(resOK.byKeys[key]).toBe(true)
112
-
113
- const resOK2 = scheme.validate(objOK2)
114
- expect(resOK2.ok).toBe(true)
115
- expect(resOK2.passed.includes(key)).toBe(true)
116
- expect(resOK2.byKeys[key]).toBe(true)
117
-
118
- const objBad = {
119
- [key]: 'not array'
120
- }
121
-
122
- const resBad = scheme.validate(objBad)
123
- expect(resBad.ok).toBe(false)
124
- expect(resBad.failed.includes(key)).toBe(true)
125
- expect(resBad.passed.includes(key)).toBe(false)
126
- expect(resBad.byKeys[key]).toBe(false)
127
- })
128
-
129
- test('Тест null', () => {
130
- const key = 'testKey'
131
- const scheme = new Schema({
132
- [key]: {
133
- required: true,
134
- type: null
135
- }
136
- })
137
- const objOK = {
138
- [key]: null
139
- }
140
-
141
- const resOK = scheme.validate(objOK)
142
- expect(resOK.ok).toBe(true)
143
- expect(resOK.passed.includes(key)).toBe(true)
144
- expect(resOK.byKeys[key]).toBe(true)
145
-
146
- const objBad = {
147
- [key]: 'not null'
148
- }
149
-
150
- const resBad = scheme.validate(objBad)
151
- expect(resBad.ok).toBe(false)
152
- expect(resBad.failed.includes(key)).toBe(true)
153
- expect(resBad.passed.includes(key)).toBe(false)
154
- expect(resBad.byKeys[key]).toBe(false)
155
- })
156
-
157
- test('Тест Date', () => {
158
- const key = 'testKey'
159
- const scheme = new Schema({
160
- [key]: {
161
- required: true,
162
- type: Date
163
- }
164
- })
165
- const objOK = {
166
- [key]: new Date()
167
- }
168
-
169
- const resOK = scheme.validate(objOK)
170
- expect(resOK.ok).toBe(true)
171
- expect(resOK.passed.includes(key)).toBe(true)
172
- expect(resOK.byKeys[key]).toBe(true)
173
-
174
- const objBad = {
175
- [key]: 'not date'
176
- }
177
-
178
- const resBad = scheme.validate(objBad)
179
- expect(resBad.ok).toBe(false)
180
- expect(resBad.failed.includes(key)).toBe(true)
181
- expect(resBad.passed.includes(key)).toBe(false)
182
- expect(resBad.byKeys[key]).toBe(false)
183
- })
184
-
185
- test('Тест Object', () => {
186
- const key = 'testKey'
187
- const scheme = new Schema({
188
- [key]: {
189
- required: true,
190
- type: Object
191
- }
192
- })
193
- const objOK = {
194
- [key]: { test: 1}
195
- }
196
-
197
- const resOK = scheme.validate(objOK)
198
- expect(resOK.ok).toBe(true)
199
- expect(resOK.passed.includes(key)).toBe(true)
200
- expect(resOK.byKeys[key]).toBe(true)
201
-
202
- const objBad = {
203
- [key]: 'not obj'
204
- }
205
-
206
- const resBad = scheme.validate(objBad)
207
- expect(resBad.ok).toBe(false)
208
- expect(resBad.failed.includes(key)).toBe(true)
209
- expect(resBad.passed.includes(key)).toBe(false)
210
- expect(resBad.byKeys[key]).toBe(false)
211
- })
212
- })
213
-
214
- describe("Проверка всех типов сразу", () => {
215
- test('Тест всех типов с корректными данными', () => {
216
- const schema = new Schema({
217
- str: {
218
- type: String,
219
- },
220
- obj: {
221
- type: Object,
222
- },
223
- num: {
224
- type: Number,
225
- },
226
- arr: {
227
- type: Array,
228
- },
229
- null: {
230
- type: null,
231
- },
232
- bool: {
233
- type: Boolean,
234
- },
235
- date: {
236
- type: Date
237
- }
238
- })
239
-
240
- const obj = {
241
- str: 'String',
242
- obj: {},
243
- num: 1,
244
- arr: [1,2,3],
245
- null: null,
246
- bool: true,
247
- date: new Date()
248
- }
249
-
250
- const res = schema.validate(obj)
251
- expect(res.ok).toBe(true)
252
- const arePassed = []
253
- for (const key in obj) {
254
- arePassed.push(res.byKeys[key])
255
- }
256
-
257
- expect(arePassed.every(el => el === true)).toBe(true)
258
- expect(res.errors.length).toBe(0)
259
- })
260
-
261
- test('Тест всех типов с некорректными данными', () => {
262
- const schema = new Schema({
263
- str: {
264
- type: String,
265
- },
266
- obj: {
267
- type: Object,
268
- },
269
- num: {
270
- type: Number,
271
- },
272
- arr: {
273
- type: Array,
274
- },
275
- null: {
276
- type: null,
277
- },
278
- bool: {
279
- type: Boolean,
280
- },
281
- date: {
282
- type: Date
283
- },
284
- test: {
285
- type: Object,
286
- required: true
287
- }
288
- })
289
-
290
- const obj = {
291
- str: 123,
292
- obj: [],
293
- num: 'str',
294
- arr: null,
295
- null: {},
296
- bool: new Date(),
297
- date: true,
298
- test: undefined
299
- }
300
-
301
- const res = schema.validate(obj)
302
- expect(res.ok).toBe(false)
303
-
304
- const areFailed = []
305
- const hasErrorMsg = []
306
-
307
- for (const key in obj) {
308
- areFailed.push(res.byKeys[key])
309
- hasErrorMsg.push(key in res.errorsByKeys)
310
- }
311
-
312
- expect(areFailed.every(el => el === false)).toBe(true)
313
- expect(hasErrorMsg.every(el => el === true)).toBe(true)
314
- expect(res.errors.length).toBe(Object.keys(obj).length)
315
- })
316
- })