[ { "description": "a schema given for prefixItems", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "prefixItems": [ { "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 (invalid due to strictness)", "data": [ 1, "foo", true ], "valid": false }, { "description": "empty array", "data": [], "valid": true }, { "description": "JavaScript pseudo-array is valid (invalid due to strict object validation)", "data": { "0": "invalid", "1": "valid", "length": 2 }, "valid": false } ] }, { "description": "prefixItems with boolean schemas", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "prefixItems": [ 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": "additional items are allowed by default", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "prefixItems": [ { "type": "integer" } ], "extensible": true }, "tests": [ { "description": "only the first item is validated", "data": [ 1, "foo", false ], "valid": true } ] }, { "description": "prefixItems with null instance elements", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "prefixItems": [ { "type": "null" } ] }, "tests": [ { "description": "allows null elements", "data": [ null ], "valid": true } ] }, { "description": "extensible: true allows extra items with prefixItems", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "prefixItems": [ { "type": "integer" } ], "extensible": true }, "tests": [ { "description": "extra item is valid", "data": [ 1, "foo" ], "valid": true } ] } ]