• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[
2    {
3        "description": "single dependency",
4        "schema": {
5            "$schema": "https://json-schema.org/draft/2020-12/schema",
6            "dependencies": {"bar": ["foo"]}
7        },
8        "tests": [
9            {
10                "description": "neither",
11                "data": {},
12                "valid": true
13            },
14            {
15                "description": "nondependant",
16                "data": {"foo": 1},
17                "valid": true
18            },
19            {
20                "description": "with dependency",
21                "data": {"foo": 1, "bar": 2},
22                "valid": true
23            },
24            {
25                "description": "missing dependency",
26                "data": {"bar": 2},
27                "valid": false
28            },
29            {
30                "description": "ignores arrays",
31                "data": ["bar"],
32                "valid": true
33            },
34            {
35                "description": "ignores strings",
36                "data": "foobar",
37                "valid": true
38            },
39            {
40                "description": "ignores other non-objects",
41                "data": 12,
42                "valid": true
43            }
44        ]
45    },
46    {
47        "description": "empty dependents",
48        "schema": {
49            "$schema": "https://json-schema.org/draft/2020-12/schema",
50            "dependencies": {"bar": []}
51        },
52        "tests": [
53            {
54                "description": "empty object",
55                "data": {},
56                "valid": true
57            },
58            {
59                "description": "object with one property",
60                "data": {"bar": 2},
61                "valid": true
62            },
63            {
64                "description": "non-object is valid",
65                "data": 1,
66                "valid": true
67            }
68        ]
69    },
70    {
71        "description": "multiple dependents required",
72        "schema": {
73            "$schema": "https://json-schema.org/draft/2020-12/schema",
74            "dependencies": {"quux": ["foo", "bar"]}
75        },
76        "tests": [
77            {
78                "description": "neither",
79                "data": {},
80                "valid": true
81            },
82            {
83                "description": "nondependants",
84                "data": {"foo": 1, "bar": 2},
85                "valid": true
86            },
87            {
88                "description": "with dependencies",
89                "data": {"foo": 1, "bar": 2, "quux": 3},
90                "valid": true
91            },
92            {
93                "description": "missing dependency",
94                "data": {"foo": 1, "quux": 2},
95                "valid": false
96            },
97            {
98                "description": "missing other dependency",
99                "data": {"bar": 1, "quux": 2},
100                "valid": false
101            },
102            {
103                "description": "missing both dependencies",
104                "data": {"quux": 1},
105                "valid": false
106            }
107        ]
108    },
109    {
110        "description": "dependencies with escaped characters",
111        "schema": {
112            "$schema": "https://json-schema.org/draft/2020-12/schema",
113            "dependencies": {
114                "foo\nbar": ["foo\rbar"],
115                "foo\"bar": ["foo'bar"]
116            }
117        },
118        "tests": [
119            {
120                "description": "CRLF",
121                "data": {
122                    "foo\nbar": 1,
123                    "foo\rbar": 2
124                },
125                "valid": true
126            },
127            {
128                "description": "quoted quotes",
129                "data": {
130                    "foo'bar": 1,
131                    "foo\"bar": 2
132                },
133                "valid": true
134            },
135            {
136                "description": "CRLF missing dependent",
137                "data": {
138                    "foo\nbar": 1,
139                    "foo": 2
140                },
141                "valid": false
142            },
143            {
144                "description": "quoted quotes missing dependent",
145                "data": {
146                    "foo\"bar": 2
147                },
148                "valid": false
149            }
150        ]
151    },
152    {
153        "description": "single schema dependency",
154        "schema": {
155            "$schema": "https://json-schema.org/draft/2020-12/schema",
156            "dependencies": {
157                "bar": {
158                    "properties": {
159                        "foo": {"type": "integer"},
160                        "bar": {"type": "integer"}
161                    }
162                }
163            }
164        },
165        "tests": [
166            {
167                "description": "valid",
168                "data": {"foo": 1, "bar": 2},
169                "valid": true
170            },
171            {
172                "description": "no dependency",
173                "data": {"foo": "quux"},
174                "valid": true
175            },
176            {
177                "description": "wrong type",
178                "data": {"foo": "quux", "bar": 2},
179                "valid": false
180            },
181            {
182                "description": "wrong type other",
183                "data": {"foo": 2, "bar": "quux"},
184                "valid": false
185            },
186            {
187                "description": "wrong type both",
188                "data": {"foo": "quux", "bar": "quux"},
189                "valid": false
190            },
191            {
192                "description": "ignores arrays",
193                "data": ["bar"],
194                "valid": true
195            },
196            {
197                "description": "ignores strings",
198                "data": "foobar",
199                "valid": true
200            },
201            {
202                "description": "ignores other non-objects",
203                "data": 12,
204                "valid": true
205            }
206        ]
207    },
208    {
209        "description": "boolean subschemas",
210        "schema": {
211            "$schema": "https://json-schema.org/draft/2020-12/schema",
212            "dependencies": {
213                "foo": true,
214                "bar": false
215            }
216        },
217        "tests": [
218            {
219                "description": "object with property having schema true is valid",
220                "data": {"foo": 1},
221                "valid": true
222            },
223            {
224                "description": "object with property having schema false is invalid",
225                "data": {"bar": 2},
226                "valid": false
227            },
228            {
229                "description": "object with both properties is invalid",
230                "data": {"foo": 1, "bar": 2},
231                "valid": false
232            },
233            {
234                "description": "empty object is valid",
235                "data": {},
236                "valid": true
237            }
238        ]
239    },
240    {
241        "description": "schema dependencies with escaped characters",
242        "schema": {
243            "$schema": "https://json-schema.org/draft/2020-12/schema",
244            "dependencies": {
245                "foo\tbar": {"minProperties": 4},
246                "foo'bar": {"required": ["foo\"bar"]}
247            }
248        },
249        "tests": [
250            {
251                "description": "quoted tab",
252                "data": {
253                    "foo\tbar": 1,
254                    "a": 2,
255                    "b": 3,
256                    "c": 4
257                },
258                "valid": true
259            },
260            {
261                "description": "quoted quote",
262                "data": {
263                    "foo'bar": {"foo\"bar": 1}
264                },
265                "valid": false
266            },
267            {
268                "description": "quoted tab invalid under dependent schema",
269                "data": {
270                    "foo\tbar": 1,
271                    "a": 2
272                },
273                "valid": false
274            },
275            {
276                "description": "quoted quote invalid under dependent schema",
277                "data": {"foo'bar": 1},
278                "valid": false
279            }
280        ]
281    }
282]
283