Files
jspg/fixtures/items.json

966 lines
18 KiB
JSON

[
{
"description": "a schema given for items",
"database": {
"schemas": [
{
"items": {
"type": "integer"
},
"$id": "items_0_0"
}
]
},
"tests": [
{
"description": "valid items",
"data": [
1,
2,
3
],
"schema_id": "items_0_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "wrong type of items",
"data": [
1,
"x"
],
"schema_id": "items_0_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "non-arrays are invalid",
"data": {
"foo": "bar"
},
"schema_id": "items_0_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "JavaScript pseudo-arrays are invalid",
"data": {
"0": "invalid",
"length": 1
},
"schema_id": "items_0_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "items with boolean schema (true)",
"database": {
"schemas": [
{
"items": true,
"$id": "items_1_0"
}
]
},
"tests": [
{
"description": "any array is valid",
"data": [
1,
"foo",
true
],
"schema_id": "items_1_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "empty array is valid",
"data": [],
"schema_id": "items_1_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "items with boolean schema (false)",
"database": {
"schemas": [
{
"items": false,
"$id": "items_2_0"
}
]
},
"tests": [
{
"description": "any non-empty array is invalid",
"data": [
1,
"foo",
true
],
"schema_id": "items_2_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "empty array is valid",
"data": [],
"schema_id": "items_2_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "items and subitems",
"database": {
"schemas": [
{
"type": "array",
"items": false,
"prefixItems": [
{
"$ref": "item"
},
{
"$ref": "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"
]
}
]
},
"tests": [
{
"description": "valid items",
"data": [
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "too many items",
"data": [
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "too many sub-items",
"data": [
[
{
"foo": null
},
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "wrong item",
"data": [
{
"foo": null
},
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "wrong sub-item",
"data": [
[
{},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
],
[
{
"foo": null
},
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "fewer items is invalid",
"data": [
[
{
"foo": null
}
],
[
{
"foo": null
}
]
],
"schema_id": "items_3_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "nested items",
"database": {
"schemas": [
{
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"$id": "items_4_0"
}
]
},
"tests": [
{
"description": "valid nested array",
"data": [
[
[
[
1
]
],
[
[
2
],
[
3
]
]
],
[
[
[
4
],
[
5
],
[
6
]
]
]
],
"schema_id": "items_4_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "nested array with invalid type",
"data": [
[
[
[
"1"
]
],
[
[
2
],
[
3
]
]
],
[
[
[
4
],
[
5
],
[
6
]
]
]
],
"schema_id": "items_4_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "not deep enough",
"data": [
[
[
1
],
[
2
],
[
3
]
],
[
[
4
],
[
5
],
[
6
]
]
],
"schema_id": "items_4_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "prefixItems with no additional items allowed",
"database": {
"schemas": [
{
"prefixItems": [
{},
{},
{}
],
"items": false,
"$id": "items_5_0"
}
]
},
"tests": [
{
"description": "empty array",
"data": [],
"schema_id": "items_5_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "fewer number of items present (1)",
"data": [
1
],
"schema_id": "items_5_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "fewer number of items present (2)",
"data": [
1,
2
],
"schema_id": "items_5_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "equal number of items present",
"data": [
1,
2,
3
],
"schema_id": "items_5_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "additional items are not permitted",
"data": [
1,
2,
3,
4
],
"schema_id": "items_5_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "items does not look in applicators, valid case",
"database": {
"schemas": [
{
"allOf": [
{
"prefixItems": [
{
"minimum": 3
}
]
}
],
"items": {
"minimum": 5
},
"$id": "items_6_0"
}
]
},
"tests": [
{
"description": "prefixItems in allOf does not constrain items, invalid case",
"data": [
3,
5
],
"schema_id": "items_6_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "prefixItems in allOf does not constrain items, valid case",
"data": [
5,
5
],
"schema_id": "items_6_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "prefixItems validation adjusts the starting index for items",
"database": {
"schemas": [
{
"prefixItems": [
{
"type": "string"
}
],
"items": {
"type": "integer"
},
"$id": "items_7_0"
}
]
},
"tests": [
{
"description": "valid items",
"data": [
"x",
2,
3
],
"schema_id": "items_7_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "wrong type of second item",
"data": [
"x",
"y"
],
"schema_id": "items_7_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "items with heterogeneous array",
"database": {
"schemas": [
{
"prefixItems": [
{}
],
"items": false,
"$id": "items_8_0"
}
]
},
"tests": [
{
"description": "heterogeneous invalid instance",
"data": [
"foo",
"bar",
37
],
"schema_id": "items_8_0",
"action": "validate",
"expect": {
"success": false
}
},
{
"description": "valid instance",
"data": [
null
],
"schema_id": "items_8_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "items with null instance elements",
"database": {
"schemas": [
{
"items": {
"type": "null"
},
"$id": "items_9_0"
}
]
},
"tests": [
{
"description": "allows null elements",
"data": [
null
],
"schema_id": "items_9_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "extensible: true allows extra items (when items is false)",
"database": {
"schemas": [
{
"items": false,
"extensible": true,
"$id": "items_10_0"
}
]
},
"tests": [
{
"description": "extra item is valid",
"data": [
1
],
"schema_id": "items_10_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "extensible: true allows extra properties for items",
"database": {
"schemas": [
{
"items": {
"minimum": 5
},
"extensible": true,
"$id": "items_11_0"
}
]
},
"tests": [
{
"description": "valid item is valid",
"data": [
5,
6
],
"schema_id": "items_11_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "invalid item (less than min) is invalid even with extensible: true",
"data": [
4
],
"schema_id": "items_11_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "array: simple extensible array",
"database": {
"schemas": [
{
"type": "array",
"extensible": true,
"$id": "items_12_0"
}
]
},
"tests": [
{
"description": "empty array is valid",
"data": [],
"schema_id": "items_12_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "array with items is valid (extensible)",
"data": [
1,
"foo"
],
"schema_id": "items_12_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "array: strict array",
"database": {
"schemas": [
{
"type": "array",
"extensible": false,
"$id": "items_13_0"
}
]
},
"tests": [
{
"description": "empty array is valid",
"data": [],
"schema_id": "items_13_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "array with items is invalid (strict)",
"data": [
1
],
"schema_id": "items_13_0",
"action": "validate",
"expect": {
"success": false
}
}
]
},
{
"description": "array: items extensible",
"database": {
"schemas": [
{
"type": "array",
"items": {
"extensible": true
},
"$id": "items_14_0"
}
]
},
"tests": [
{
"description": "empty array is valid",
"data": [],
"schema_id": "items_14_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "array with items is valid (items explicitly allowed to be anything extensible)",
"data": [
1,
"foo",
{}
],
"schema_id": "items_14_0",
"action": "validate",
"expect": {
"success": true
}
}
]
},
{
"description": "array: items strict",
"database": {
"schemas": [
{
"type": "array",
"items": {
"type": "object",
"extensible": false
},
"$id": "items_15_0"
}
]
},
"tests": [
{
"description": "empty array is valid (empty objects)",
"data": [
{}
],
"schema_id": "items_15_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "array with strict object items is valid",
"data": [
{}
],
"schema_id": "items_15_0",
"action": "validate",
"expect": {
"success": true
}
},
{
"description": "array with invalid strict object items (extra property)",
"data": [
{
"extra": 1
}
],
"schema_id": "items_15_0",
"action": "validate",
"expect": {
"success": false
}
}
]
}
]