1[
2 {
3 "description": "const validation",
4 "schema": {"const": 2},
5 "tests": [
6 {
7 "description": "same value is valid",
8 "data": 2,
9 "valid": true
10 },
11 {
12 "description": "another value is invalid",
13 "data": 5,
14 "valid": false
15 },
16 {
17 "description": "another type is invalid",
18 "data": "a",
19 "valid": false
20 }
21 ]
22 },
23 {
24 "description": "const with object",
25 "schema": {"const": {"foo": "bar", "baz": "bax"}},
26 "tests": [
27 {
28 "description": "same object is valid",
29 "data": {"foo": "bar", "baz": "bax"},
30 "valid": true
31 },
32 {
33 "description": "same object with different property order is valid",
34 "data": {"baz": "bax", "foo": "bar"},
35 "valid": true
36 },
37 {
38 "description": "another object is invalid",
39 "data": {"foo": "bar"},
40 "valid": false
41 },
42 {
43 "description": "another type is invalid",
44 "data": [1, 2],
45 "valid": false
46 }
47 ]
48 },
49 {
50 "description": "const with array",
51 "schema": {"const": [{ "foo": "bar" }]},
52 "tests": [
53 {
54 "description": "same array is valid",
55 "data": [{"foo": "bar"}],
56 "valid": true
57 },
58 {
59 "description": "another array item is invalid",
60 "data": [2],
61 "valid": false
62 },
63 {
64 "description": "array with additional items is invalid",
65 "data": [1, 2, 3],
66 "valid": false
67 }
68 ]
69 },
70 {
71 "description": "const with null",
72 "schema": {"const": null},
73 "tests": [
74 {
75 "description": "null is valid",
76 "data": null,
77 "valid": true
78 },
79 {
80 "description": "not null is invalid",
81 "data": 0,
82 "valid": false
83 }
84 ]
85 },
86 {
87 "description": "const with false does not match 0",
88 "schema": {"const": false},
89 "tests": [
90 {
91 "description": "false is valid",
92 "data": false,
93 "valid": true
94 },
95 {
96 "description": "integer zero is invalid",
97 "data": 0,
98 "valid": false
99 },
100 {
101 "description": "float zero is invalid",
102 "data": 0.0,
103 "valid": false
104 }
105 ]
106 },
107 {
108 "description": "const with true does not match 1",
109 "schema": {"const": true},
110 "tests": [
111 {
112 "description": "true is valid",
113 "data": true,
114 "valid": true
115 },
116 {
117 "description": "integer one is invalid",
118 "data": 1,
119 "valid": false
120 },
121 {
122 "description": "float one is invalid",
123 "data": 1.0,
124 "valid": false
125 }
126 ]
127 },
128 {
129 "description": "const with 0 does not match other zero-like types",
130 "schema": {"const": 0},
131 "tests": [
132 {
133 "description": "false is invalid",
134 "data": false,
135 "valid": false
136 },
137 {
138 "description": "integer zero is valid",
139 "data": 0,
140 "valid": true
141 },
142 {
143 "description": "float zero is valid",
144 "data": 0.0,
145 "valid": true
146 },
147 {
148 "description": "empty object is invalid",
149 "data": {},
150 "valid": false
151 },
152 {
153 "description": "empty array is invalid",
154 "data": [],
155 "valid": false
156 },
157 {
158 "description": "empty string is invalid",
159 "data": "",
160 "valid": false
161 }
162 ]
163 },
164 {
165 "description": "const with 1 does not match true",
166 "schema": {"const": 1},
167 "tests": [
168 {
169 "description": "true is invalid",
170 "data": true,
171 "valid": false
172 },
173 {
174 "description": "integer one is valid",
175 "data": 1,
176 "valid": true
177 },
178 {
179 "description": "float one is valid",
180 "data": 1.0,
181 "valid": true
182 }
183 ]
184 },
185 {
186 "description": "const with -2.0 matches integer and float types",
187 "schema": {"const": -2.0},
188 "tests": [
189 {
190 "description": "integer -2 is valid",
191 "data": -2,
192 "valid": true
193 },
194 {
195 "description": "integer 2 is invalid",
196 "data": 2,
197 "valid": false
198 },
199 {
200 "description": "float -2.0 is valid",
201 "data": -2.0,
202 "valid": true
203 },
204 {
205 "description": "float 2.0 is invalid",
206 "data": 2.0,
207 "valid": false
208 },
209 {
210 "description": "float -2.00001 is invalid",
211 "data": -2.00001,
212 "valid": false
213 }
214 ]
215 },
216 {
217 "description": "float and integers are equal up to 64-bit representation limits",
218 "schema": {"const": 9007199254740992},
219 "tests": [
220 {
221 "description": "integer is valid",
222 "data": 9007199254740992,
223 "valid": true
224 },
225 {
226 "description": "integer minus one is invalid",
227 "data": 9007199254740991,
228 "valid": false
229 },
230 {
231 "description": "float is valid",
232 "data": 9007199254740992.0,
233 "valid": true
234 },
235 {
236 "description": "float minus one is invalid",
237 "data": 9007199254740991.0,
238 "valid": false
239 }
240 ]
241 }
242]
View as plain text