@litert/typeguard 1.4.0 → 1.4.1

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,277 +0,0 @@
1
- /**
2
- * Copyright 2023 Angus Fenying <fenying@litert.org>
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { createTestDefinition, defaultItems, ITestSuite } from './abstracts';
18
-
19
- const testItems: ITestSuite = {
20
-
21
- name: 'Structure',
22
- sections: [
23
-
24
- {
25
- 'name': 'Empty object',
26
- 'rule': {},
27
- 'items': [
28
- {
29
- title: 'Empty object',
30
- value: {},
31
- expect: true
32
- },
33
- {
34
- title: 'Object with one property',
35
- value: { 'a': 123 },
36
- expect: true
37
- },
38
- {
39
- title: '[int, string]',
40
- value: [123, 'fff'],
41
- expect: false
42
- },
43
- ...defaultItems({
44
- 'object': true
45
- })
46
- ]
47
- },
48
- {
49
- 'name': '1 property object',
50
- 'rule': { 'a': 'uint32' },
51
- 'items': [
52
- {
53
- title: 'Empty object',
54
- value: {},
55
- expect: false
56
- },
57
- {
58
- title: 'Object with one property',
59
- value: { 'a': 123 },
60
- expect: true
61
- },
62
- {
63
- title: '[int, string]',
64
- value: [123, 'fff'],
65
- expect: false
66
- },
67
- ...defaultItems({
68
- 'object': false
69
- })
70
- ]
71
- },
72
- {
73
- 'name': '1 optional property object',
74
- 'rule': { 'a?': 'uint32' },
75
- 'items': [
76
- {
77
- title: 'Empty object',
78
- value: {},
79
- expect: true
80
- },
81
- {
82
- title: 'Object with one property',
83
- value: { 'a': 123 },
84
- expect: true
85
- },
86
- {
87
- title: 'Object with one mismatch-type property',
88
- value: { 'a': '123' },
89
- expect: false
90
- },
91
- {
92
- title: '[int, string]',
93
- value: [123, 'fff'],
94
- expect: false
95
- },
96
- ...defaultItems({
97
- 'object': true
98
- })
99
- ]
100
- },
101
- {
102
- 'name': 'Nested object',
103
- 'rule': { 'a?': 'uint32', 'b': { 'c': 'string' } },
104
- 'items': [
105
- {
106
- title: 'Empty object',
107
- value: {},
108
- expect: false
109
- },
110
- {
111
- title: 'Object with one property',
112
- value: { 'a': 123 },
113
- expect: false
114
- },
115
- {
116
- title: 'Object with mismatch-typed nest property',
117
- value: { 'a': 123, 'b': { 'c': 1232131 } },
118
- expect: false
119
- },
120
- {
121
- title: 'Object with one mismatch-typed property',
122
- value: { 'a': '123', 'b': { 'c': 'ffff' } },
123
- expect: false
124
- },
125
- {
126
- title: 'Object with all corrected',
127
- value: { 'a': 123, 'b': { 'c': 'ffff' } },
128
- expect: true
129
- }
130
- ]
131
- },
132
- {
133
- 'name': 'Strict object',
134
- 'rule': ['$.strict', {
135
- 'a': 'uint'
136
- }],
137
- 'items': [
138
- {
139
- title: 'Empty object',
140
- value: {},
141
- expect: false
142
- },
143
- {
144
- title: 'Object with one property',
145
- value: { 'a': 123 },
146
- expect: true
147
- },
148
- {
149
- title: 'Object with one mismatch-typed property',
150
- value: { 'a': '123' },
151
- expect: false
152
- },
153
- {
154
- title: 'Object with 2 properties',
155
- value: { 'a': 123, 'b': { 'c': 'ffff' } },
156
- expect: false
157
- }
158
- ]
159
- },
160
- {
161
- 'name': 'Strict object with nested properties',
162
- 'rule': ['$.strict', {
163
- 'a': 'uint',
164
- 'b': {
165
- 'c': 'uint'
166
- }
167
- }],
168
- 'items': [
169
- {
170
- title: 'Object with one property',
171
- value: { 'a': 123 },
172
- expect: false
173
- },
174
- {
175
- title: 'Object with wrong type in nest',
176
- value: { 'a': 123, 'b': { 'c': 'ffff' } },
177
- expect: false
178
- },
179
- {
180
- title: 'Object with all correct',
181
- value: { 'a': 123, 'b': { 'c': 123 } },
182
- expect: true
183
- },
184
- {
185
- title: 'Object with one more in nested',
186
- value: { 'a': 123, 'b': { 'c': 123, 'd': '1213131' } },
187
- expect: true
188
- }
189
- ]
190
- },
191
- {
192
- 'name': 'Recursively-Strict object with nested properties',
193
- 'rule': ['$.equal', {
194
- 'a': 'uint',
195
- 'b': {
196
- 'c': 'uint'
197
- }
198
- }],
199
- 'items': [
200
- {
201
- title: 'Object with one property',
202
- value: { 'a': 123 },
203
- expect: false
204
- },
205
- {
206
- title: 'Object with wrong type in nest',
207
- value: { 'a': 123, 'b': { 'c': 'ffff' } },
208
- expect: false
209
- },
210
- {
211
- title: 'Object with all correct',
212
- value: { 'a': 123, 'b': { 'c': 123 } },
213
- expect: true
214
- },
215
- {
216
- title: 'Object with one more in nested',
217
- value: { 'a': 123, 'b': { 'c': 123, 'd': '1213131' } },
218
- expect: false
219
- }
220
- ]
221
- },
222
- {
223
- 'name': 'Object with from-string modifier',
224
- 'rule': ['$.string', {
225
- 'a': 'uint',
226
- 'b': {
227
- 'c': 'uint'
228
- }
229
- }],
230
- 'items': [
231
- {
232
- title: 'Object with all correct',
233
- value: { 'a': 123, 'b': { 'c': 123 } },
234
- expect: true
235
- },
236
- {
237
- title: 'Object with string incorrect-value',
238
- value: { 'a': 123, 'b': { 'c': '123d' } },
239
- expect: false
240
- },
241
- {
242
- title: 'Object with string value',
243
- value: { 'a': '123312312', 'b': { 'c': '123' } },
244
- expect: true
245
- }
246
- ]
247
- },
248
- {
249
- 'name': 'Object with from-string modifier',
250
- 'rule': ['$.string', {
251
- 'a': 'uint',
252
- 'b': {
253
- 'c': 'uint'
254
- }
255
- }],
256
- 'items': [
257
- {
258
- title: 'Object with all correct',
259
- value: { 'a': 123, 'b': { 'c': 123 } },
260
- expect: true
261
- },
262
- {
263
- title: 'Object with string incorrect-value',
264
- value: { 'a': 123, 'b': { 'c': '123d' } },
265
- expect: false
266
- },
267
- {
268
- title: 'Object with string value',
269
- value: { 'a': '123312312', 'b': { 'c': '123' } },
270
- expect: true
271
- }
272
- ]
273
- },
274
- ]
275
- };
276
-
277
- export default createTestDefinition(testItems);