significantly simplified the validator and work continues on query
This commit is contained in:
217
tests/fixtures/enum.json
vendored
217
tests/fixtures/enum.json
vendored
@ -4,12 +4,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
1,
|
||||
2,
|
||||
3
|
||||
]
|
||||
],
|
||||
"$id": "enum_0_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -17,12 +17,14 @@
|
||||
{
|
||||
"description": "one of the enum is valid",
|
||||
"data": 1,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_0_0"
|
||||
},
|
||||
{
|
||||
"description": "something else is invalid",
|
||||
"data": 4,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_0_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -31,7 +33,6 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
6,
|
||||
"foo",
|
||||
@ -43,7 +44,8 @@
|
||||
],
|
||||
"properties": {
|
||||
"foo": {}
|
||||
}
|
||||
},
|
||||
"$id": "enum_1_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -51,26 +53,30 @@
|
||||
{
|
||||
"description": "one of the enum is valid",
|
||||
"data": [],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_1_0"
|
||||
},
|
||||
{
|
||||
"description": "something else is invalid",
|
||||
"data": null,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_1_0"
|
||||
},
|
||||
{
|
||||
"description": "objects are deep compared",
|
||||
"data": {
|
||||
"foo": false
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_1_0"
|
||||
},
|
||||
{
|
||||
"description": "valid object matches",
|
||||
"data": {
|
||||
"foo": 12
|
||||
},
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_1_0"
|
||||
},
|
||||
{
|
||||
"description": "extra properties in object is invalid",
|
||||
@ -78,7 +84,8 @@
|
||||
"foo": 12,
|
||||
"boo": 42
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_1_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -87,11 +94,11 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
6,
|
||||
null
|
||||
]
|
||||
],
|
||||
"$id": "enum_2_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -99,17 +106,20 @@
|
||||
{
|
||||
"description": "null is valid",
|
||||
"data": null,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_2_0"
|
||||
},
|
||||
{
|
||||
"description": "number is valid",
|
||||
"data": 6,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_2_0"
|
||||
},
|
||||
{
|
||||
"description": "something else is invalid",
|
||||
"data": "test",
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_2_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -118,7 +128,6 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"foo": {
|
||||
@ -134,7 +143,8 @@
|
||||
},
|
||||
"required": [
|
||||
"bar"
|
||||
]
|
||||
],
|
||||
"$id": "enum_3_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -145,7 +155,8 @@
|
||||
"foo": "foo",
|
||||
"bar": "bar"
|
||||
},
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_3_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong foo value",
|
||||
@ -153,7 +164,8 @@
|
||||
"foo": "foot",
|
||||
"bar": "bar"
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_3_0"
|
||||
},
|
||||
{
|
||||
"description": "wrong bar value",
|
||||
@ -161,26 +173,30 @@
|
||||
"foo": "foo",
|
||||
"bar": "bart"
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_3_0"
|
||||
},
|
||||
{
|
||||
"description": "missing optional property is valid",
|
||||
"data": {
|
||||
"bar": "bar"
|
||||
},
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_3_0"
|
||||
},
|
||||
{
|
||||
"description": "missing required property is invalid",
|
||||
"data": {
|
||||
"foo": "foo"
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_3_0"
|
||||
},
|
||||
{
|
||||
"description": "missing all properties is invalid",
|
||||
"data": {},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_3_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -189,11 +205,11 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
"foo\nbar",
|
||||
"foo\rbar"
|
||||
]
|
||||
],
|
||||
"$id": "enum_4_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -201,17 +217,20 @@
|
||||
{
|
||||
"description": "member 1 is valid",
|
||||
"data": "foo\nbar",
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_4_0"
|
||||
},
|
||||
{
|
||||
"description": "member 2 is valid",
|
||||
"data": "foo\rbar",
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_4_0"
|
||||
},
|
||||
{
|
||||
"description": "another string is invalid",
|
||||
"data": "abc",
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_4_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -220,10 +239,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
false
|
||||
]
|
||||
],
|
||||
"$id": "enum_5_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -231,17 +250,20 @@
|
||||
{
|
||||
"description": "false is valid",
|
||||
"data": false,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_5_0"
|
||||
},
|
||||
{
|
||||
"description": "integer zero is invalid",
|
||||
"data": 0,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_5_0"
|
||||
},
|
||||
{
|
||||
"description": "float zero is invalid",
|
||||
"data": 0.0,
|
||||
"valid": false
|
||||
"data": 0,
|
||||
"valid": false,
|
||||
"schema_id": "enum_5_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -250,12 +272,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
[
|
||||
false
|
||||
]
|
||||
]
|
||||
],
|
||||
"$id": "enum_6_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -265,21 +287,24 @@
|
||||
"data": [
|
||||
false
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_6_0"
|
||||
},
|
||||
{
|
||||
"description": "[0] is invalid",
|
||||
"data": [
|
||||
0
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_6_0"
|
||||
},
|
||||
{
|
||||
"description": "[0.0] is invalid",
|
||||
"data": [
|
||||
0.0
|
||||
0
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_6_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -288,10 +313,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
true
|
||||
]
|
||||
],
|
||||
"$id": "enum_7_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -299,17 +324,20 @@
|
||||
{
|
||||
"description": "true is valid",
|
||||
"data": true,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_7_0"
|
||||
},
|
||||
{
|
||||
"description": "integer one is invalid",
|
||||
"data": 1,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_7_0"
|
||||
},
|
||||
{
|
||||
"description": "float one is invalid",
|
||||
"data": 1.0,
|
||||
"valid": false
|
||||
"data": 1,
|
||||
"valid": false,
|
||||
"schema_id": "enum_7_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -318,12 +346,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
[
|
||||
true
|
||||
]
|
||||
]
|
||||
],
|
||||
"$id": "enum_8_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -333,21 +361,24 @@
|
||||
"data": [
|
||||
true
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_8_0"
|
||||
},
|
||||
{
|
||||
"description": "[1] is invalid",
|
||||
"data": [
|
||||
1
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_8_0"
|
||||
},
|
||||
{
|
||||
"description": "[1.0] is invalid",
|
||||
"data": [
|
||||
1.0
|
||||
1
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_8_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -356,10 +387,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
0
|
||||
]
|
||||
],
|
||||
"$id": "enum_9_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -367,17 +398,20 @@
|
||||
{
|
||||
"description": "false is invalid",
|
||||
"data": false,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_9_0"
|
||||
},
|
||||
{
|
||||
"description": "integer zero is valid",
|
||||
"data": 0,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_9_0"
|
||||
},
|
||||
{
|
||||
"description": "float zero is valid",
|
||||
"data": 0.0,
|
||||
"valid": true
|
||||
"data": 0,
|
||||
"valid": true,
|
||||
"schema_id": "enum_9_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -386,12 +420,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
[
|
||||
0
|
||||
]
|
||||
]
|
||||
],
|
||||
"$id": "enum_10_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -401,21 +435,24 @@
|
||||
"data": [
|
||||
false
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_10_0"
|
||||
},
|
||||
{
|
||||
"description": "[0] is valid",
|
||||
"data": [
|
||||
0
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_10_0"
|
||||
},
|
||||
{
|
||||
"description": "[0.0] is valid",
|
||||
"data": [
|
||||
0.0
|
||||
0
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_10_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -424,10 +461,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
1
|
||||
]
|
||||
],
|
||||
"$id": "enum_11_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -435,17 +472,20 @@
|
||||
{
|
||||
"description": "true is invalid",
|
||||
"data": true,
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_11_0"
|
||||
},
|
||||
{
|
||||
"description": "integer one is valid",
|
||||
"data": 1,
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_11_0"
|
||||
},
|
||||
{
|
||||
"description": "float one is valid",
|
||||
"data": 1.0,
|
||||
"valid": true
|
||||
"data": 1,
|
||||
"valid": true,
|
||||
"schema_id": "enum_11_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -454,12 +494,12 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
[
|
||||
1
|
||||
]
|
||||
]
|
||||
],
|
||||
"$id": "enum_12_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -469,21 +509,24 @@
|
||||
"data": [
|
||||
true
|
||||
],
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_12_0"
|
||||
},
|
||||
{
|
||||
"description": "[1] is valid",
|
||||
"data": [
|
||||
1
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_12_0"
|
||||
},
|
||||
{
|
||||
"description": "[1.0] is valid",
|
||||
"data": [
|
||||
1.0
|
||||
1
|
||||
],
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_12_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -492,10 +535,10 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
"hello\u0000there"
|
||||
]
|
||||
],
|
||||
"$id": "enum_13_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -503,12 +546,14 @@
|
||||
{
|
||||
"description": "match string with nul",
|
||||
"data": "hello\u0000there",
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_13_0"
|
||||
},
|
||||
{
|
||||
"description": "do not match string lacking nul",
|
||||
"data": "hellothere",
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_13_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -517,13 +562,13 @@
|
||||
"database": {
|
||||
"schemas": [
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"enum": [
|
||||
{
|
||||
"foo": 1
|
||||
}
|
||||
],
|
||||
"extensible": true
|
||||
"extensible": true,
|
||||
"$id": "enum_14_0"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -534,14 +579,16 @@
|
||||
"foo": 1,
|
||||
"bar": 2
|
||||
},
|
||||
"valid": false
|
||||
"valid": false,
|
||||
"schema_id": "enum_14_0"
|
||||
},
|
||||
{
|
||||
"description": "extra property ignored during strict check, enum match succeeds",
|
||||
"data": {
|
||||
"foo": 1
|
||||
},
|
||||
"valid": true
|
||||
"valid": true,
|
||||
"schema_id": "enum_14_0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user