[ { "description": "a schema given for prefixItems", "database": { "types": [ { "name": "prefixItems_0_0", "schemas": { "prefixItems_0_0": { "prefixItems": [ { "type": "integer" }, { "type": "string" } ] } } } ] }, "tests": [ { "description": "correct types", "data": [ 1, "foo" ], "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": true } }, { "description": "wrong types", "data": [ "foo", 1 ], "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": false, "errors": [ { "code": "INVALID_TYPE", "values": { "expected": "integer" }, "details": { "path": "0", "schema": "prefixItems_0_0" } }, { "code": "INVALID_TYPE", "values": { "expected": "string" }, "details": { "path": "1", "schema": "prefixItems_0_0" } } ] } }, { "description": "incomplete array of items", "data": [ 1 ], "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": true } }, { "description": "array with additional items (invalid due to strictness)", "data": [ 1, "foo", true ], "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": false, "errors": [ { "code": "STRICT_ITEM_VIOLATION", "values": { "index": "2" }, "details": { "path": "2", "schema": "prefixItems_0_0" } } ] } }, { "description": "empty array", "data": [], "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": true } }, { "description": "JavaScript pseudo-array is valid (invalid due to strict object validation)", "data": { "0": "invalid", "1": "valid", "length": 2 }, "schema_id": "prefixItems_0_0", "action": "validate", "expect": { "success": false, "errors": [ { "code": "STRICT_PROPERTY_VIOLATION", "values": { "property_name": "0" }, "details": { "path": "0", "schema": "prefixItems_0_0" } }, { "code": "STRICT_PROPERTY_VIOLATION", "values": { "property_name": "1" }, "details": { "path": "1", "schema": "prefixItems_0_0" } }, { "code": "STRICT_PROPERTY_VIOLATION", "values": { "property_name": "length" }, "details": { "path": "length", "schema": "prefixItems_0_0" } } ] } } ] }, { "description": "prefixItems with boolean schemas", "database": { "types": [ { "name": "prefixItems_1_0", "schemas": { "prefixItems_1_0": { "prefixItems": [ true, false ] } } } ] }, "tests": [ { "description": "array with one item is valid", "data": [ 1 ], "schema_id": "prefixItems_1_0", "action": "validate", "expect": { "success": true } }, { "description": "array with two items is invalid", "data": [ 1, "foo" ], "schema_id": "prefixItems_1_0", "action": "validate", "expect": { "success": false, "errors": [ { "code": "FALSE_SCHEMA", "details": { "path": "1", "schema": "prefixItems_1_0" } } ] } }, { "description": "empty array is valid", "data": [], "schema_id": "prefixItems_1_0", "action": "validate", "expect": { "success": true } } ] }, { "description": "additional items are allowed by default", "database": { "types": [ { "name": "prefixItems_2_0", "schemas": { "prefixItems_2_0": { "prefixItems": [ { "type": "integer" } ], "extensible": true } } } ] }, "tests": [ { "description": "only the first item is validated", "data": [ 1, "foo", false ], "schema_id": "prefixItems_2_0", "action": "validate", "expect": { "success": true } } ] }, { "description": "prefixItems with null instance elements", "database": { "types": [ { "name": "prefixItems_3_0", "schemas": { "prefixItems_3_0": { "prefixItems": [ { "type": "null" } ] } } } ] }, "tests": [ { "description": "allows null elements", "data": [ null ], "schema_id": "prefixItems_3_0", "action": "validate", "expect": { "success": true } } ] }, { "description": "extensible: true allows extra items with prefixItems", "database": { "types": [ { "name": "prefixItems_4_0", "schemas": { "prefixItems_4_0": { "prefixItems": [ { "type": "integer" } ], "extensible": true } } } ] }, "tests": [ { "description": "extra item is valid", "data": [ 1, "foo" ], "schema_id": "prefixItems_4_0", "action": "validate", "expect": { "success": true } } ] } ]