[
{
"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"
: {
"type"
:
"integer"
},
"additionalItems"
: {
"type"
:
"string"
}
},
"tests"
: [
{
"description"
:
"valid with a array of type integers"
,
"data"
: [1,2,3],
"valid"
:
true
},
{
"description"
:
"invalid with a array of mixed types"
,
"data"
: [1,
"2"
,
"3"
],
"valid"
:
false
}
]
},
{
"description"
:
"when items is schema, boolean 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 does 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 does 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
}
]
},
{
"description"
:
"additionalItems with heterogeneous array"
,
"schema"
: {
"items"
: [{}],
"additionalItems"
:
false
},
"tests"
: [
{
"description"
:
"heterogeneous invalid instance"
,
"data"
: [
"foo"
,
"bar"
, 37 ],
"valid"
:
false
},
{
"description"
:
"valid instance"
,
"data"
: [
null
],
"valid"
:
true
}
]
},
{
"description"
:
"additionalItems with null instance elements"
,
"schema"
: {
"additionalItems"
: {
"type"
:
"null"
}
},
"tests"
: [
{
"description"
:
"allows null elements"
,
"data"
: [
null
],
"valid"
:
true
}
]
}
]