Files
jspg/fixtures/enum.json
Alex Groleau e026e82f65 test(jspg): rename items fixture to array and resolve unused HashMap warning
- Rename fixtures/items.json to fixtures/array.json to better reflect array testing constraints.
- Update reference paths in src/tests/fixtures.rs and across other fixture JSON files.
- Remove unused HashMap import in src/validator/rules/dict.rs to resolve the compiler warning.
2026-06-23 20:17:03 -04:00

1094 lines
23 KiB
JSON

[
{
"description": "simple enum validation",
"database": {
"types": [
{
"name": "enum_0_0",
"schemas": {
"enum_0_0": {
"enum": [
1,
2,
3
]
}
}
}
]
},
"tests": [
{
"description": "one of the enum is valid",
"data": 1,
"schema_id": "enum_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "something else is invalid",
"data": 4,
"schema_id": "enum_0_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(1), Number(2), Number(3)]"
},
"details": {
"path": "",
"schema": "enum_0_0"
}
}
]
}
}
]
},
{
"description": "heterogeneous enum validation",
"database": {
"types": [
{
"name": "enum_1_0",
"schemas": {
"enum_1_0": {
"enum": [
6,
"foo",
[],
true,
{
"foo": 12
}
],
"properties": {
"foo": {}
}
}
}
}
]
},
"tests": [
{
"description": "one of the enum is valid",
"data": [],
"schema_id": "enum_1_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "something else is invalid",
"data": null,
"schema_id": "enum_1_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(6), String(\"foo\"), Array [], Bool(true), Object {\"foo\": Number(12)}]"
},
"details": {
"path": "",
"schema": "enum_1_0"
}
}
]
}
},
{
"description": "objects are deep compared",
"data": {
"foo": false
},
"schema_id": "enum_1_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(6), String(\"foo\"), Array [], Bool(true), Object {\"foo\": Number(12)}]"
},
"details": {
"path": "",
"schema": "enum_1_0"
}
}
]
}
},
{
"description": "valid object matches",
"data": {
"foo": 12
},
"schema_id": "enum_1_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "extra properties in object is invalid",
"data": {
"foo": 12,
"boo": 42
},
"schema_id": "enum_1_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(6), String(\"foo\"), Array [], Bool(true), Object {\"foo\": Number(12)}]"
},
"details": {
"path": "",
"schema": "enum_1_0"
}
},
{
"code": "STRICT_PROPERTY_VIOLATION",
"values": {
"property_name": "boo"
},
"details": {
"path": "boo",
"schema": "enum_1_0"
}
}
]
}
}
]
},
{
"description": "heterogeneous enum-with-null validation",
"database": {
"types": [
{
"name": "enum_2_0",
"schemas": {
"enum_2_0": {
"enum": [
6,
null
]
}
}
}
]
},
"tests": [
{
"description": "null is valid",
"data": null,
"schema_id": "enum_2_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "number is valid",
"data": 6,
"schema_id": "enum_2_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "something else is invalid",
"data": "test",
"schema_id": "enum_2_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(6), Null]"
},
"details": {
"path": "",
"schema": "enum_2_0"
}
}
]
}
}
]
},
{
"description": "enums in properties",
"database": {
"types": [
{
"name": "enum_3_0",
"schemas": {
"enum_3_0": {
"type": "object",
"properties": {
"foo": {
"enum": [
"foo"
]
},
"bar": {
"enum": [
"bar"
]
}
},
"required": [
"bar"
]
}
}
}
]
},
"tests": [
{
"description": "both properties are valid",
"data": {
"foo": "foo",
"bar": "bar"
},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "wrong foo value",
"data": {
"foo": "foot",
"bar": "bar"
},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[String(\"foo\")]"
},
"details": {
"path": "foo",
"schema": "enum_3_0"
}
}
]
}
},
{
"description": "wrong bar value",
"data": {
"foo": "foo",
"bar": "bart"
},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[String(\"bar\")]"
},
"details": {
"path": "bar",
"schema": "enum_3_0"
}
}
]
}
},
{
"description": "missing optional property is valid",
"data": {
"bar": "bar"
},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "missing required property is invalid",
"data": {
"foo": "foo"
},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "REQUIRED_FIELD_MISSING",
"values": {
"field_name": "bar"
},
"details": {
"path": "bar",
"schema": "enum_3_0"
}
}
]
}
},
{
"description": "missing all properties is invalid",
"data": {},
"schema_id": "enum_3_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "REQUIRED_FIELD_MISSING",
"values": {
"field_name": "bar"
},
"details": {
"path": "bar",
"schema": "enum_3_0"
}
}
]
}
}
]
},
{
"description": "enum with escaped characters",
"database": {
"types": [
{
"name": "enum_4_0",
"schemas": {
"enum_4_0": {
"enum": [
"foo\nbar",
"foo\rbar"
]
}
}
}
]
},
"tests": [
{
"description": "member 1 is valid",
"data": "foo\nbar",
"schema_id": "enum_4_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "member 2 is valid",
"data": "foo\rbar",
"schema_id": "enum_4_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "another string is invalid",
"data": "abc",
"schema_id": "enum_4_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[String(\"foo\\nbar\"), String(\"foo\\rbar\")]"
},
"details": {
"path": "",
"schema": "enum_4_0"
}
}
]
}
}
]
},
{
"description": "enum with false does not match 0",
"database": {
"types": [
{
"name": "enum_5_0",
"schemas": {
"enum_5_0": {
"enum": [
false
]
}
}
}
]
},
"tests": [
{
"description": "false is valid",
"data": false,
"schema_id": "enum_5_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "integer zero is invalid",
"data": 0,
"schema_id": "enum_5_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Bool(false)]"
},
"details": {
"path": "",
"schema": "enum_5_0"
}
}
]
}
},
{
"description": "float zero is invalid",
"data": 0,
"schema_id": "enum_5_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Bool(false)]"
},
"details": {
"path": "",
"schema": "enum_5_0"
}
}
]
}
}
]
},
{
"description": "enum with [false] does not match [0]",
"database": {
"types": [
{
"name": "enum_6_0",
"schemas": {
"enum_6_0": {
"enum": [
[
false
]
]
}
}
}
]
},
"tests": [
{
"description": "[false] is valid",
"data": [
false
],
"schema_id": "enum_6_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "[0] is invalid",
"data": [
0
],
"schema_id": "enum_6_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Bool(false)]]"
},
"details": {
"path": "",
"schema": "enum_6_0"
}
}
]
}
},
{
"description": "[0.0] is invalid",
"data": [
0
],
"schema_id": "enum_6_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Bool(false)]]"
},
"details": {
"path": "",
"schema": "enum_6_0"
}
}
]
}
}
]
},
{
"description": "enum with true does not match 1",
"database": {
"types": [
{
"name": "enum_7_0",
"schemas": {
"enum_7_0": {
"enum": [
true
]
}
}
}
]
},
"tests": [
{
"description": "true is valid",
"data": true,
"schema_id": "enum_7_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "integer one is invalid",
"data": 1,
"schema_id": "enum_7_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Bool(true)]"
},
"details": {
"path": "",
"schema": "enum_7_0"
}
}
]
}
},
{
"description": "float one is invalid",
"data": 1,
"schema_id": "enum_7_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Bool(true)]"
},
"details": {
"path": "",
"schema": "enum_7_0"
}
}
]
}
}
]
},
{
"description": "enum with [true] does not match [1]",
"database": {
"types": [
{
"name": "enum_8_0",
"schemas": {
"enum_8_0": {
"enum": [
[
true
]
]
}
}
}
]
},
"tests": [
{
"description": "[true] is valid",
"data": [
true
],
"schema_id": "enum_8_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "[1] is invalid",
"data": [
1
],
"schema_id": "enum_8_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Bool(true)]]"
},
"details": {
"path": "",
"schema": "enum_8_0"
}
}
]
}
},
{
"description": "[1.0] is invalid",
"data": [
1
],
"schema_id": "enum_8_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Bool(true)]]"
},
"details": {
"path": "",
"schema": "enum_8_0"
}
}
]
}
}
]
},
{
"description": "enum with 0 does not match false",
"database": {
"types": [
{
"name": "enum_9_0",
"schemas": {
"enum_9_0": {
"enum": [
0
]
}
}
}
]
},
"tests": [
{
"description": "false is invalid",
"data": false,
"schema_id": "enum_9_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(0)]"
},
"details": {
"path": "",
"schema": "enum_9_0"
}
}
]
}
},
{
"description": "integer zero is valid",
"data": 0,
"schema_id": "enum_9_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "float zero is valid",
"data": 0,
"schema_id": "enum_9_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "enum with [0] does not match [false]",
"database": {
"types": [
{
"name": "enum_10_0",
"schemas": {
"enum_10_0": {
"enum": [
[
0
]
]
}
}
}
]
},
"tests": [
{
"description": "[false] is invalid",
"data": [
false
],
"schema_id": "enum_10_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Number(0)]]"
},
"details": {
"path": "",
"schema": "enum_10_0"
}
}
]
}
},
{
"description": "[0] is valid",
"data": [
0
],
"schema_id": "enum_10_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "[0.0] is valid",
"data": [
0
],
"schema_id": "enum_10_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "enum with 1 does not match true",
"database": {
"types": [
{
"name": "enum_11_0",
"schemas": {
"enum_11_0": {
"enum": [
1
]
}
}
}
]
},
"tests": [
{
"description": "true is invalid",
"data": true,
"schema_id": "enum_11_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Number(1)]"
},
"details": {
"path": "",
"schema": "enum_11_0"
}
}
]
}
},
{
"description": "integer one is valid",
"data": 1,
"schema_id": "enum_11_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "float one is valid",
"data": 1,
"schema_id": "enum_11_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "enum with [1] does not match [true]",
"database": {
"types": [
{
"name": "enum_12_0",
"schemas": {
"enum_12_0": {
"enum": [
[
1
]
]
}
}
}
]
},
"tests": [
{
"description": "[true] is invalid",
"data": [
true
],
"schema_id": "enum_12_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Array [Number(1)]]"
},
"details": {
"path": "",
"schema": "enum_12_0"
}
}
]
}
},
{
"description": "[1] is valid",
"data": [
1
],
"schema_id": "enum_12_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "[1.0] is valid",
"data": [
1
],
"schema_id": "enum_12_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "nul characters in strings",
"database": {
"types": [
{
"name": "enum_13_0",
"schemas": {
"enum_13_0": {
"enum": [
"hello\u0000there"
]
}
}
}
]
},
"tests": [
{
"description": "match string with nul",
"data": "hello\u0000there",
"schema_id": "enum_13_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "do not match string lacking nul",
"data": "hellothere",
"schema_id": "enum_13_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[String(\"hello\\0there\")]"
},
"details": {
"path": "",
"schema": "enum_13_0"
}
}
]
}
}
]
},
{
"description": "extensible: true allows extra properties in enum object match",
"database": {
"types": [
{
"name": "enum_14_0",
"schemas": {
"enum_14_0": {
"enum": [
{
"foo": 1
}
],
"extensible": true
}
}
}
]
},
"tests": [
{
"description": "extra property ignored during strict check, but enum check still applies (mismatch here)",
"data": {
"foo": 1,
"bar": 2
},
"schema_id": "enum_14_0",
"action": "validate",
"expect": {
"success": false,
"errors": [
{
"code": "ENUM_MISMATCH",
"values": {
"expected": "[Object {\"foo\": Number(1)}]"
},
"details": {
"path": "",
"schema": "enum_14_0"
}
}
]
}
},
{
"description": "extra property ignored during strict check, enum match succeeds",
"data": {
"foo": 1
},
"schema_id": "enum_14_0",
"action": "validate",
"expect": {
"success": true
}
}
]
}
]