[
{
"description"
:
"a schema given for items"
,
"schema"
: {
"items"
: {
"type"
:
"integer"
}
},
"tests"
: [
{
"description"
:
"valid items"
,
"data"
: [ 1, 2, 3 ],
"valid"
:
true
},
{
"description"
:
"wrong type of items"
,
"data"
: [1,
"x"
],
"valid"
:
false
},
{
"description"
:
"ignores non-arrays"
,
"data"
: {
"foo"
:
"bar"
},
"valid"
:
true
},
{
"description"
:
"JavaScript pseudo-array is valid"
,
"data"
: {
"0"
:
"invalid"
,
"length"
: 1
},
"valid"
:
true
}
]
},
{
"description"
:
"an array of schemas for items"
,
"schema"
: {
"items"
: [
{
"type"
:
"integer"
},
{
"type"
:
"string"
}
]
},
"tests"
: [
{
"description"
:
"correct types"
,
"data"
: [ 1,
"foo"
],
"valid"
:
true
},
{
"description"
:
"wrong types"
,
"data"
: [
"foo"
, 1 ],
"valid"
:
false
},
{
"description"
:
"incomplete array of items"
,
"data"
: [ 1 ],
"valid"
:
true
},
{
"description"
:
"array with additional items"
,
"data"
: [ 1,
"foo"
,
true
],
"valid"
:
true
},
{
"description"
:
"empty array"
,
"data"
: [ ],
"valid"
:
true
},
{
"description"
:
"JavaScript pseudo-array is valid"
,
"data"
: {
"0"
:
"invalid"
,
"1"
:
"valid"
,
"length"
: 2
},
"valid"
:
true
}
]
},
{
"description"
:
"items with boolean schema (true)"
,
"schema"
: {
"items"
:
true
},
"tests"
: [
{
"description"
:
"any array is valid"
,
"data"
: [ 1,
"foo"
,
true
],
"valid"
:
true
},
{
"description"
:
"empty array is valid"
,
"data"
: [],
"valid"
:
true
}
]
},
{
"description"
:
"items with boolean schema (false)"
,
"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 with boolean schemas"
,
"schema"
: {
"items"
: [
true
,
false
]
},
"tests"
: [
{
"description"
:
"array with one item is valid"
,
"data"
: [ 1 ],
"valid"
:
true
},
{
"description"
:
"array with two items is invalid"
,
"data"
: [ 1,
"foo"
],
"valid"
:
false
},
{
"description"
:
"empty array is valid"
,
"data"
: [],
"valid"
:
true
}
]
},
{
"description"
:
"items and subitems"
,
"schema"
: {
"definitions"
: {
"item"
: {
"type"
:
"array"
,
"additionalItems"
:
false
,
"items"
: [
{
"$ref"
:
"#/definitions/sub-item"
},
{
"$ref"
:
"#/definitions/sub-item"
}
]
},
"sub-item"
: {
"type"
:
"object"
,
"required"
: [
"foo"
]
}
},
"type"
:
"array"
,
"additionalItems"
:
false
,
"items"
: [
{
"$ref"
:
"#/definitions/item"
},
{
"$ref"
:
"#/definitions/item"
},
{
"$ref"
:
"#/definitions/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"
:
"nested items"
,
"schema"
: {
"type"
:
"array"
,
"items"
: {
"type"
:
"array"
,
"items"
: {
"type"
:
"array"
,
"items"
: {
"type"
:
"array"
,
"items"
: {
"type"
:
"number"
}
}
}
}
},
"tests"
: [
{
"description"
:
"valid nested array"
,
"data"
: [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
"valid"
:
true
},
{
"description"
:
"nested array with invalid type"
,
"data"
: [[[[
"1"
]], [[2],[3]]], [[[4], [5], [6]]]],
"valid"
:
false
},
{
"description"
:
"not deep enough"
,
"data"
: [[[1], [2],[3]], [[4], [5], [6]]],
"valid"
:
false
}
]
},
{
"description"
:
"single-form items with null instance elements"
,
"schema"
: {
"items"
: {
"type"
:
"null"
}
},
"tests"
: [
{
"description"
:
"allows null elements"
,
"data"
: [
null
],
"valid"
:
true
}
]
},
{
"description"
:
"array-form items with null instance elements"
,
"schema"
: {
"items"
: [
{
"type"
:
"null"
}
]
},
"tests"
: [
{
"description"
:
"allows null elements"
,
"data"
: [
null
],
"valid"
:
true
}
]
}
]