150 lines
4.2 KiB
JSON
150 lines
4.2 KiB
JSON
[
|
|
{
|
|
"description": "additionalItems as schema",
|
|
"schema": {
|
|
"items": [{}],
|
|
"additionalItems": {"type": "integer"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "additional items match schema",
|
|
"data": [ null, 2, 3, 4 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "additional items do not match schema",
|
|
"data": [ null, 2, 3, "foo" ],
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "when items is schema, additionalItems does nothing",
|
|
"schema": {
|
|
"items": {},
|
|
"additionalItems": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "all items match schema",
|
|
"data": [ 1, 2, 3, 4, 5 ],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "array of items with no additionalItems permitted",
|
|
"schema": {
|
|
"items": [{}, {}, {}],
|
|
"additionalItems": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "empty array",
|
|
"data": [ ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "fewer number of items present (1)",
|
|
"data": [ 1 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "fewer number of items present (2)",
|
|
"data": [ 1, 2 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "equal number of items present",
|
|
"data": [ 1, 2, 3 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "additional items are not permitted",
|
|
"data": [ 1, 2, 3, 4 ],
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalItems as false without items",
|
|
"schema": {"additionalItems": false},
|
|
"tests": [
|
|
{
|
|
"description":
|
|
"items defaults to empty schema so everything is valid",
|
|
"data": [ 1, 2, 3, 4, 5 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "ignores non-arrays",
|
|
"data": {"foo" : "bar"},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalItems are allowed by default",
|
|
"schema": {"items": [{"type": "integer"}]},
|
|
"tests": [
|
|
{
|
|
"description": "only the first item is validated",
|
|
"data": [1, "foo", false],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalItems should not look in applicators, valid case",
|
|
"schema": {
|
|
"allOf": [
|
|
{ "items": [ { "type": "integer" } ] }
|
|
],
|
|
"additionalItems": { "type": "boolean" }
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "items defined in allOf are not examined",
|
|
"data": [ 1, null ],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalItems should not look in applicators, invalid case",
|
|
"schema": {
|
|
"allOf": [
|
|
{ "items": [ { "type": "integer" }, { "type": "string" } ] }
|
|
],
|
|
"items": [ {"type": "integer" } ],
|
|
"additionalItems": { "type": "boolean" }
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "items defined in allOf are not examined",
|
|
"data": [ 1, "hello" ],
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items validation adjusts the starting index for additionalItems",
|
|
"schema": {
|
|
"items": [ { "type": "string" } ],
|
|
"additionalItems": { "type": "integer" }
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid items",
|
|
"data": [ "x", 2, 3 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "wrong type of second item",
|
|
"data": [ "x", "y" ],
|
|
"valid": false
|
|
}
|
|
]
|
|
}
|
|
]
|