318 lines
5.6 KiB
JSON
318 lines
5.6 KiB
JSON
[
|
|
{
|
|
"description": "items with boolean schema (false)",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"items": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "any non-empty array is invalid",
|
|
"data": [
|
|
1,
|
|
"foo",
|
|
true
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items and subitems",
|
|
"schema": {
|
|
"$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": "#/$defs/item"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/item"
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid items",
|
|
"data": [
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "too many items",
|
|
"data": [
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "too many sub-items",
|
|
"data": [
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "wrong item",
|
|
"data": [
|
|
{
|
|
"foo": null
|
|
},
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "wrong sub-item",
|
|
"data": [
|
|
[
|
|
{},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
},
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "fewer items is valid",
|
|
"data": [
|
|
[
|
|
{
|
|
"foo": null
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"foo": null
|
|
}
|
|
]
|
|
],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items does not look in applicators, valid case",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"allOf": [
|
|
{
|
|
"prefixItems": [
|
|
{
|
|
"minimum": 3
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"items": {
|
|
"minimum": 5
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "prefixItems in allOf does not constrain items, invalid case",
|
|
"data": [
|
|
3,
|
|
5
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "prefixItems in allOf does not constrain items, valid case",
|
|
"data": [
|
|
5,
|
|
5
|
|
],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with heterogeneous array",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"prefixItems": [
|
|
{}
|
|
],
|
|
"items": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "heterogeneous invalid instance",
|
|
"data": [
|
|
"foo",
|
|
"bar",
|
|
37
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "valid instance",
|
|
"data": [
|
|
null
|
|
],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with null instance elements",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"items": {
|
|
"type": "null"
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "allows null elements",
|
|
"data": [
|
|
null
|
|
],
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|
|
] |