Skip to content

Commit 4cbf3f0

Browse files
committed
not, contain test cases added
1 parent af6d60f commit 4cbf3f0

2 files changed

Lines changed: 134 additions & 0 deletions

File tree

src/test-suite/tests/contains.json

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,88 @@
9696
},
9797
"instance": ["foo", 42],
9898
"errors": []
99+
},
100+
{
101+
"description": "contains fails due to too many matching items with success explanations",
102+
"compatibility": "2019",
103+
"schema": {
104+
"contains": { "type": "string" },
105+
"maxContains": 1
106+
},
107+
"instance": [42, "foo", "bar"],
108+
"errors": [
109+
{
110+
"messageId": "contains-exact-message",
111+
"messageParams": {
112+
"minContains": 1,
113+
"maxContains": 1
114+
},
115+
"instanceLocation": "#",
116+
"schemaLocations": ["#/contains", "#/maxContains"],
117+
"alternatives": [
118+
[
119+
{
120+
"messageId": "type-success",
121+
"messageParams": {
122+
"actualType": "string"
123+
},
124+
"instanceLocation": "#/1",
125+
"schemaLocations": ["#/contains/type"]
126+
}
127+
],
128+
[
129+
{
130+
"messageId": "type-success",
131+
"messageParams": {
132+
"actualType": "string"
133+
},
134+
"instanceLocation": "#/2",
135+
"schemaLocations": ["#/contains/type"]
136+
}
137+
]
138+
]
139+
},
140+
{
141+
"description": "contains fails with multiple object matches",
142+
"compatibility": "2019",
143+
"schema": {
144+
"contains": {
145+
"required": ["a"]
146+
},
147+
"maxContains": 1
148+
},
149+
"instance": [{ "a": 1 }, { "a": 2 }],
150+
"errors": [
151+
{
152+
"messageId": "contains-exact-message",
153+
"messageParams": {
154+
"minContains": 1,
155+
"maxContains": 1
156+
},
157+
"instanceLocation": "#",
158+
"schemaLocations": ["#/contains", "#/maxContains"],
159+
"alternatives": [
160+
[
161+
{
162+
"messageId": "required-success",
163+
"messageParams": { "property": "a" },
164+
"instanceLocation": "#/0",
165+
"schemaLocations": ["#/contains/required"]
166+
}
167+
],
168+
[
169+
{
170+
"messageId": "required-success",
171+
"messageParams": { "property": "a" },
172+
"instanceLocation": "#/1",
173+
"schemaLocations": ["#/contains/required"]
174+
}
175+
]
176+
]
177+
}
178+
]
179+
}
180+
]
99181
}
100182
]
101183
}

src/test-suite/tests/not.json

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,58 @@
2424
},
2525
"instance": "foo",
2626
"errors": []
27+
},
28+
{
29+
"description": "not fails with success explanation",
30+
"schema": {
31+
"not": { "pattern": "^a" }
32+
},
33+
"instance": "apple",
34+
"errors": [
35+
{
36+
"messageId": "not-message",
37+
"instanceLocation": "#",
38+
"schemaLocations": ["#/not"],
39+
"alternatives": [
40+
[
41+
{
42+
"messageId": "pattern-success",
43+
"messageParams": {
44+
"pattern": "^a"
45+
},
46+
"instanceLocation": "#",
47+
"schemaLocations": ["#/not/pattern"]
48+
}
49+
]
50+
]
51+
}
52+
]
53+
},
54+
{
55+
"description": "not with nested schema producing a match",
56+
"schema": {
57+
"not": {
58+
"required": ["a"]
59+
}
60+
},
61+
"instance": { "a": 1 },
62+
"errors": [
63+
{
64+
"messageId": "not-message",
65+
"instanceLocation": "#",
66+
"schemaLocations": ["#/not"],
67+
"alternatives": [
68+
[
69+
{
70+
"messageId": "required-success",
71+
"messageParams": { "property": "a" },
72+
"instanceLocation": "#",
73+
"schemaLocations": ["#/not/required"]
74+
}
75+
]
76+
]
77+
}
78+
]
2779
}
2880
]
2981
}

0 commit comments

Comments
 (0)