UNPKG

node-blaze

Version:

Bindings to blaze, high-performance C++ JSON Schema validator

222 lines (221 loc) 6.69 kB
[ { "description": "additionalItems as schema", "schema": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema":"https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/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": { "$schema": "https://json-schema.org/draft/2019-09/schema", "additionalItems": { "type": "null" } }, "tests": [ { "description": "allows null elements", "data": [ null ], "valid": true } ] } ]