Skip to content

Commit ec553d7

Browse files
committed
contains no longer applies to objects
1 parent 95fe6ca commit ec553d7

File tree

3 files changed

+17
-178
lines changed

3 files changed

+17
-178
lines changed

tests/draft-next/contains.json

Lines changed: 17 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,6 @@
3131
"data": [],
3232
"valid": false
3333
},
34-
{
35-
"description": "object with property matching schema (5) is valid",
36-
"data": { "a": 3, "b": 4, "c": 5 },
37-
"valid": true
38-
},
39-
{
40-
"description": "object with property matching schema (6) is valid",
41-
"data": { "a": 3, "b": 4, "c": 6 },
42-
"valid": true
43-
},
44-
{
45-
"description": "object with two properties matching schema (5, 6) is valid",
46-
"data": { "a": 3, "b": 4, "c": 5, "d": 6 },
47-
"valid": true
48-
},
49-
{
50-
"description": "object without properties matching schema is invalid",
51-
"data": { "a": 2, "b": 3, "c": 4 },
52-
"valid": false
53-
},
54-
{
55-
"description": "empty object is invalid",
56-
"data": {},
57-
"valid": false
58-
},
5934
{
6035
"description": "not array or object is valid",
6136
"data": 42,
@@ -84,21 +59,6 @@
8459
"description": "array without item 5 is invalid",
8560
"data": [1, 2, 3, 4],
8661
"valid": false
87-
},
88-
{
89-
"description": "object with property 5 is valid",
90-
"data": { "a": 3, "b": 4, "c": 5 },
91-
"valid": true
92-
},
93-
{
94-
"description": "object with two properties 5 is valid",
95-
"data": { "a": 3, "b": 4, "c": 5, "d": 5 },
96-
"valid": true
97-
},
98-
{
99-
"description": "object without property 5 is invalid",
100-
"data": { "a": 1, "b": 2, "c": 3, "d": 4 },
101-
"valid": false
10262
}
10363
]
10464
},
@@ -118,16 +78,6 @@
11878
"description": "empty array is invalid",
11979
"data": [],
12080
"valid": false
121-
},
122-
{
123-
"description": "any non-empty object is valid",
124-
"data": { "a": "foo" },
125-
"valid": true
126-
},
127-
{
128-
"description": "empty object is invalid",
129-
"data": {},
130-
"valid": false
13181
}
13282
]
13383
},
@@ -149,18 +99,28 @@
14999
"valid": false
150100
},
151101
{
152-
"description": "any non-empty object is invalid",
153-
"data": ["foo"],
154-
"valid": false
102+
"description": "non-arrays are valid - string",
103+
"data": "contains does not apply to strings",
104+
"valid": true
155105
},
156106
{
157-
"description": "empty object is invalid",
107+
"description": "non-arrays are valid - object",
158108
"data": {},
159-
"valid": false
109+
"valid": true
160110
},
161111
{
162-
"description": "non-arrays/objects are valid",
163-
"data": "contains does not apply to strings",
112+
"description": "non-arrays are valid - number",
113+
"data": 42,
114+
"valid": true
115+
},
116+
{
117+
"description": "non-arrays are valid - boolean",
118+
"data": false,
119+
"valid": true
120+
},
121+
{
122+
"description": "non-arrays are valid - null",
123+
"data": null,
164124
"valid": true
165125
}
166126
]
@@ -193,26 +153,6 @@
193153
"description": "matches neither items nor contains",
194154
"data": [1, 5],
195155
"valid": false
196-
},
197-
{
198-
"description": "matches additionalProperties, does not match contains",
199-
"data": { "a": 2, "b": 4, "c": 8 },
200-
"valid": false
201-
},
202-
{
203-
"description": "does not match additionalProperties, matches contains",
204-
"data": { "a": 3, "b": 6, "c": 9 },
205-
"valid": false
206-
},
207-
{
208-
"description": "matches both additionalProperties and contains",
209-
"data": { "a": 6, "b": 12 },
210-
"valid": true
211-
},
212-
{
213-
"description": "matches neither additionalProperties nor contains",
214-
"data": { "a": 1, "b": 5 },
215-
"valid": false
216156
}
217157
]
218158
},
@@ -235,16 +175,6 @@
235175
"description": "empty array is invalid",
236176
"data": [],
237177
"valid": false
238-
},
239-
{
240-
"description": "any non-empty object is valid",
241-
"data": { "a": "foo" },
242-
"valid": true
243-
},
244-
{
245-
"description": "empty object is invalid",
246-
"data": {},
247-
"valid": false
248178
}
249179
]
250180
},

tests/draft-next/maxContains.json

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -60,31 +60,6 @@
6060
"description": "some elements match, invalid maxContains",
6161
"data": [1, 2, 1],
6262
"valid": false
63-
},
64-
{
65-
"description": "empty object",
66-
"data": {},
67-
"valid": false
68-
},
69-
{
70-
"description": "all properties match, valid maxContains",
71-
"data": { "a": 1 },
72-
"valid": true
73-
},
74-
{
75-
"description": "all properties match, invalid maxContains",
76-
"data": { "a": 1, "b": 1 },
77-
"valid": false
78-
},
79-
{
80-
"description": "some properties match, valid maxContains",
81-
"data": { "a": 1, "b": 2 },
82-
"valid": true
83-
},
84-
{
85-
"description": "some properties match, invalid maxContains",
86-
"data": { "a": 1, "b": 2, "c": 1 },
87-
"valid": false
8863
}
8964
]
9065
},
@@ -131,21 +106,6 @@
131106
"description": "array with minContains < maxContains < actual",
132107
"data": [1, 1, 1, 1],
133108
"valid": false
134-
},
135-
{
136-
"description": "object with actual < minContains < maxContains",
137-
"data": {},
138-
"valid": false
139-
},
140-
{
141-
"description": "object with minContains < actual < maxContains",
142-
"data": { "a": 1, "b": 1 },
143-
"valid": true
144-
},
145-
{
146-
"description": "object with minContains < maxContains < actual",
147-
"data": { "a": 1, "b": 1, "c": 1, "d": 1 },
148-
"valid": false
149109
}
150110
]
151111
}

tests/draft-next/unevaluatedProperties.json

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,57 +1365,6 @@
13651365
}
13661366
]
13671367
},
1368-
{
1369-
"description": "unevaluatedProperties depends on adjacent contains",
1370-
"schema": {
1371-
"$schema": "https://json-schema.org/draft/next/schema",
1372-
"properties": {
1373-
"foo": { "type": "number" }
1374-
},
1375-
"contains": { "type": "string" },
1376-
"unevaluatedProperties": false
1377-
},
1378-
"tests": [
1379-
{
1380-
"description": "bar is evaluated by contains",
1381-
"data": { "foo": 1, "bar": "foo" },
1382-
"valid": true
1383-
},
1384-
{
1385-
"description": "contains fails, bar is not evaluated",
1386-
"data": { "foo": 1, "bar": 2 },
1387-
"valid": false
1388-
},
1389-
{
1390-
"description": "contains passes, bar is not evaluated",
1391-
"data": { "foo": 1, "bar": 2, "baz": "foo" },
1392-
"valid": false
1393-
}
1394-
]
1395-
},
1396-
{
1397-
"description": "unevaluatedProperties depends on multiple nested contains",
1398-
"schema": {
1399-
"$schema": "https://json-schema.org/draft/next/schema",
1400-
"allOf": [
1401-
{ "contains": { "multipleOf": 2 } },
1402-
{ "contains": { "multipleOf": 3 } }
1403-
],
1404-
"unevaluatedProperties": { "multipleOf": 5 }
1405-
},
1406-
"tests": [
1407-
{
1408-
"description": "5 not evaluated, passes unevaluatedItems",
1409-
"data": { "a": 2, "b": 3, "c": 4, "d": 5, "e": 6 },
1410-
"valid": true
1411-
},
1412-
{
1413-
"description": "7 not evaluated, fails unevaluatedItems",
1414-
"data": { "a": 2, "b": 3, "c": 4, "d": 7, "e": 8 },
1415-
"valid": false
1416-
}
1417-
]
1418-
},
14191368
{
14201369
"description": "non-object instances are valid",
14211370
"schema": {

0 commit comments

Comments
 (0)