Skip to content

Commit de84a59

Browse files
committed
Add and modify uniqueItems tests
Improve uniqueItems tests to ensure validators verify all elements of arrays: - Use more than two items in the test arrays. - Set the first and last items as non-unique where applicable. - Add tests for arrays of unique and non-unique strings.
1 parent 329efe5 commit de84a59

File tree

7 files changed

+91
-21
lines changed

7 files changed

+91
-21
lines changed

tests/draft-next/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

tests/draft2019-09/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

tests/draft2020-12/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

tests/draft3/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,29 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
1717
"description": "numbers are unique if mathematically unequal",
1818
"data": [1.0, 1.00, 1],
1919
"valid": false
2020
},
21+
{
22+
"description": "unique array of strings is valid",
23+
"data": ["foo", "bar", "baz"],
24+
"valid": true
25+
},
26+
{
27+
"description": "non-unique array of strings is invalid",
28+
"data": ["foo", "bar", "foo"],
29+
"valid": false
30+
},
2131
{
2232
"description": "unique array of objects is valid",
2333
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -51,7 +61,7 @@
5161
},
5262
{
5363
"description": "non-unique array of arrays is invalid",
54-
"data": [["foo"], ["foo"]],
64+
"data": [["foo"], ["bar"], ["foo"]],
5565
"valid": false
5666
},
5767
{

tests/draft4/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

tests/draft6/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

tests/draft7/uniqueItems.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"tests": [
66
{
77
"description": "unique array of integers is valid",
8-
"data": [1, 2],
8+
"data": [1, 2, 3],
99
"valid": true
1010
},
1111
{
1212
"description": "non-unique array of integers is invalid",
13-
"data": [1, 1],
13+
"data": [1, 2, 1],
1414
"valid": false
1515
},
1616
{
@@ -28,6 +28,16 @@
2828
"data": [1, true],
2929
"valid": true
3030
},
31+
{
32+
"description": "unique array of strings is valid",
33+
"data": ["foo", "bar", "baz"],
34+
"valid": true
35+
},
36+
{
37+
"description": "non-unique array of strings is invalid",
38+
"data": ["foo", "bar", "foo"],
39+
"valid": false
40+
},
3141
{
3242
"description": "unique array of objects is valid",
3343
"data": [{"foo": "bar"}, {"foo": "baz"}],
@@ -61,7 +71,7 @@
6171
},
6272
{
6373
"description": "non-unique array of arrays is invalid",
64-
"data": [["foo"], ["foo"]],
74+
"data": [["foo"], ["bar"], ["foo"]],
6575
"valid": false
6676
},
6777
{

0 commit comments

Comments
 (0)