significantly simplified the validator and work continues on query
This commit is contained in:
231
tests/fixtures/items.json
vendored
231
tests/fixtures/items.json
vendored
@ -4,10 +4,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"$id": "items_0_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -19,7 +19,8 @@
|
||||
2,
|
||||
3
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_0_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong type of items",
|
||||
@ -27,14 +28,16 @@
|
||||
1,
|
||||
"x"
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_0_0"
|
||||
},
|
||||
{
|
||||
"description": "non-arrays are invalid",
|
||||
"data": {
|
||||
"foo": "bar"
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_0_0"
|
||||
},
|
||||
{
|
||||
"description": "JavaScript pseudo-arrays are invalid",
|
||||
@ -42,7 +45,8 @@
|
||||
"0": "invalid",
|
||||
"length": 1
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_0_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -51,8 +55,8 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": true
|
||||
"items": true,
|
||||
"$id": "items_1_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -64,12 +68,14 @@
|
||||
"foo",
|
||||
true
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_1_0"
|
||||
},
|
||||
{
|
||||
"description": "empty array is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_1_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -78,8 +84,8 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": false
|
||||
"items": false,
|
||||
"$id": "items_2_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -91,12 +97,14 @@
|
||||
"foo",
|
||||
true
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_2_0"
|
||||
},
|
||||
{
|
||||
"description": "empty array is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_2_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -105,39 +113,39 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$defs": {
|
||||
"item": {
|
||||
"type": "array",
|
||||
"items": false,
|
||||
"prefixItems": [
|
||||
{
|
||||
"$ref": "#/$defs/sub-item"
|
||||
},
|
||||
{
|
||||
"$ref": "#/$defs/sub-item"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sub-item": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"foo"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "array",
|
||||
"items": false,
|
||||
"prefixItems": [
|
||||
{
|
||||
"$ref": "#/$defs/item"
|
||||
"$ref": "item"
|
||||
},
|
||||
{
|
||||
"$ref": "#/$defs/item"
|
||||
"$ref": "item"
|
||||
},
|
||||
{
|
||||
"$ref": "#/$defs/item"
|
||||
"$ref": "item"
|
||||
}
|
||||
],
|
||||
"$id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"$id": "item",
|
||||
"type": "array",
|
||||
"items": false,
|
||||
"prefixItems": [
|
||||
{
|
||||
"$ref": "sub-item"
|
||||
},
|
||||
{
|
||||
"$ref": "sub-item"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$id": "sub-item",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"foo"
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -171,7 +179,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"description": "too many items",
|
||||
@ -209,7 +218,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"description": "too many sub-items",
|
||||
@ -242,7 +252,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong item",
|
||||
@ -267,7 +278,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong sub-item",
|
||||
@ -295,7 +307,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
},
|
||||
{
|
||||
"description": "fewer items is invalid",
|
||||
@ -311,7 +324,8 @@
|
||||
}
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_3_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -320,7 +334,6 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
@ -333,7 +346,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$id": "items_4_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -370,7 +384,8 @@
|
||||
]
|
||||
]
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_4_0"
|
||||
},
|
||||
{
|
||||
"description": "nested array with invalid type",
|
||||
@ -404,7 +419,8 @@
|
||||
]
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_4_0"
|
||||
},
|
||||
{
|
||||
"description": "not deep enough",
|
||||
@ -432,7 +448,8 @@
|
||||
]
|
||||
]
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_4_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -441,13 +458,13 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"prefixItems": [
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
],
|
||||
"items": false
|
||||
"items": false,
|
||||
"$id": "items_5_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -455,14 +472,16 @@
|
||||
{
|
||||
"description": "empty array",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_5_0"
|
||||
},
|
||||
{
|
||||
"description": "fewer number of items present (1)",
|
||||
"data": [
|
||||
1
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_5_0"
|
||||
},
|
||||
{
|
||||
"description": "fewer number of items present (2)",
|
||||
@ -470,7 +489,8 @@
|
||||
1,
|
||||
2
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_5_0"
|
||||
},
|
||||
{
|
||||
"description": "equal number of items present",
|
||||
@ -479,7 +499,8 @@
|
||||
2,
|
||||
3
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_5_0"
|
||||
},
|
||||
{
|
||||
"description": "additional items are not permitted",
|
||||
@ -489,7 +510,8 @@
|
||||
3,
|
||||
4
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_5_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -498,7 +520,6 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"allOf": [
|
||||
{
|
||||
"prefixItems": [
|
||||
@ -510,7 +531,8 @@
|
||||
],
|
||||
"items": {
|
||||
"minimum": 5
|
||||
}
|
||||
},
|
||||
"$id": "items_6_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -521,7 +543,8 @@
|
||||
3,
|
||||
5
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_6_0"
|
||||
},
|
||||
{
|
||||
"description": "prefixItems in allOf does not constrain items, valid case",
|
||||
@ -529,7 +552,8 @@
|
||||
5,
|
||||
5
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_6_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -538,7 +562,6 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"prefixItems": [
|
||||
{
|
||||
"type": "string"
|
||||
@ -546,7 +569,8 @@
|
||||
],
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"$id": "items_7_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -558,7 +582,8 @@
|
||||
2,
|
||||
3
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_7_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong type of second item",
|
||||
@ -566,7 +591,8 @@
|
||||
"x",
|
||||
"y"
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_7_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -575,11 +601,11 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"prefixItems": [
|
||||
{}
|
||||
],
|
||||
"items": false
|
||||
"items": false,
|
||||
"$id": "items_8_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -591,14 +617,16 @@
|
||||
"bar",
|
||||
37
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_8_0"
|
||||
},
|
||||
{
|
||||
"description": "valid instance",
|
||||
"data": [
|
||||
null
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_8_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -607,10 +635,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": {
|
||||
"type": "null"
|
||||
}
|
||||
},
|
||||
"$id": "items_9_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -620,7 +648,8 @@
|
||||
"data": [
|
||||
null
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_9_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -629,9 +658,9 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": false,
|
||||
"extensible": true
|
||||
"extensible": true,
|
||||
"$id": "items_10_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -641,7 +670,8 @@
|
||||
"data": [
|
||||
1
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_10_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -650,11 +680,11 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"items": {
|
||||
"minimum": 5
|
||||
},
|
||||
"extensible": true
|
||||
"extensible": true,
|
||||
"$id": "items_11_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -665,14 +695,16 @@
|
||||
5,
|
||||
6
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_11_0"
|
||||
},
|
||||
{
|
||||
"description": "invalid item (less than min) is invalid even with extensible: true",
|
||||
"data": [
|
||||
4
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_11_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -681,9 +713,9 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "array",
|
||||
"extensible": true
|
||||
"extensible": true,
|
||||
"$id": "items_12_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -691,7 +723,8 @@
|
||||
{
|
||||
"description": "empty array is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_12_0"
|
||||
},
|
||||
{
|
||||
"description": "array with items is valid (extensible)",
|
||||
@ -699,7 +732,8 @@
|
||||
1,
|
||||
"foo"
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_12_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -708,9 +742,9 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "array",
|
||||
"extensible": false
|
||||
"extensible": false,
|
||||
"$id": "items_13_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -718,14 +752,16 @@
|
||||
{
|
||||
"description": "empty array is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_13_0"
|
||||
},
|
||||
{
|
||||
"description": "array with items is invalid (strict)",
|
||||
"data": [
|
||||
1
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_13_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -734,11 +770,11 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"extensible": true
|
||||
}
|
||||
},
|
||||
"$id": "items_14_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -746,7 +782,8 @@
|
||||
{
|
||||
"description": "empty array is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_14_0"
|
||||
},
|
||||
{
|
||||
"description": "array with items is valid (items explicitly allowed to be anything extensible)",
|
||||
@ -755,7 +792,8 @@
|
||||
"foo",
|
||||
{}
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_14_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -764,12 +802,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"extensible": false
|
||||
}
|
||||
},
|
||||
"$id": "items_15_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -779,14 +817,16 @@
|
||||
"data": [
|
||||
{}
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_15_0"
|
||||
},
|
||||
{
|
||||
"description": "array with strict object items is valid",
|
||||
"data": [
|
||||
{}
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "items_15_0"
|
||||
},
|
||||
{
|
||||
"description": "array with invalid strict object items (extra property)",
|
||||
@ -795,7 +835,8 @@
|
||||
"extra": 1
|
||||
}
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "items_15_0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user