Files
jspg/fixtures/uniqueItems.json
2026-06-23 19:48:38 -04:00

623 lines
13 KiB
JSON

[
{
"description": "uniqueItems validation",
"database": {
"types": [
{
"name": "uniqueItems_0_0",
"schemas": {
"uniqueItems_0_0": {
"uniqueItems": true,
"extensible": true
}
}
}
]
},
"tests": [
{
"description": "unique array of integers is valid",
"data": [
1,
2
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of integers is invalid",
"data": [
1,
1
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "non-unique array of more than two integers is invalid",
"data": [
1,
2,
1
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "numbers are unique if mathematically unequal",
"data": [
1,
1,
1
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "false is not equal to zero",
"data": [
0,
false
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "true is not equal to one",
"data": [
1,
true
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "unique array of strings is valid",
"data": [
"foo",
"bar",
"baz"
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of strings is invalid",
"data": [
"foo",
"bar",
"foo"
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "baz"
}
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of objects is invalid",
"data": [
{
"foo": "bar"
},
{
"foo": "bar"
}
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "property order of array of objects is ignored",
"data": [
{
"foo": "bar",
"bar": "foo"
},
{
"bar": "foo",
"foo": "bar"
}
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": false
}
}
}
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of nested objects is invalid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": true
}
}
}
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
},
{
"description": "unique array of arrays is valid",
"data": [
[
"foo"
],
[
"bar"
]
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of arrays is invalid",
"data": [
[
"foo"
],
[
"foo"
]
],
"schema_id": "uniqueItems_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_0_0"
}
}
]
}
}
]
},
{
"description": "uniqueItems=false validation",
"database": {
"types": [
{
"name": "uniqueItems_3_0",
"schemas": {
"uniqueItems_3_0": {
"uniqueItems": false,
"extensible": true
}
}
}
]
},
"tests": [
{
"description": "unique array of integers is valid",
"data": [
1,
2
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of integers is valid",
"data": [
1,
1
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "numbers are unique if mathematically unequal",
"data": [
1,
1,
1
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "false is not equal to zero",
"data": [
0,
false
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "true is not equal to one",
"data": [
1,
true
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "baz"
}
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "bar"
}
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": false
}
}
}
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": true
}
}
}
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "unique array of arrays is valid",
"data": [
[
"foo"
],
[
"bar"
]
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique array of arrays is valid",
"data": [
[
"foo"
],
[
"foo"
]
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "1 and true are unique",
"data": [
1,
true
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "0 and false are unique",
"data": [
0,
false
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "unique heterogeneous types are valid",
"data": [
{},
[
1
],
true,
null,
1
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "non-unique heterogeneous types are valid",
"data": [
{},
[
1
],
true,
null,
{},
1
],
"schema_id": "uniqueItems_3_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "extensible: true allows extra items in uniqueItems",
"database": {
"types": [
{
"name": "uniqueItems_6_0",
"schemas": {
"uniqueItems_6_0": {
"uniqueItems": true,
"extensible": true
}
}
}
]
},
"tests": [
{
"description": "extra items must be unique",
"data": [
1,
1
],
"schema_id": "uniqueItems_6_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "UNIQUE_ITEMS_VIOLATED",
"details": {
"path": "",
"schema": "uniqueItems_6_0"
}
}
]
}
},
{
"description": "extra unique items valid",
"data": [
1,
2
],
"schema_id": "uniqueItems_6_0",
"action": "validate",
"expect": {
"success": true
}
}
]
}
]