| [ |
| { |
| "description": "const validation", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": 2 |
| }, |
| "tests": [ |
| { |
| "description": "same value is valid", |
| "data": 2, |
| "valid": true |
| }, |
| { |
| "description": "another value is invalid", |
| "data": 5, |
| "valid": false |
| }, |
| { |
| "description": "another type is invalid", |
| "data": "a", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with object", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": {"foo": "bar", "baz": "bax"} |
| }, |
| "tests": [ |
| { |
| "description": "same object is valid", |
| "data": {"foo": "bar", "baz": "bax"}, |
| "valid": true |
| }, |
| { |
| "description": "same object with different property order is valid", |
| "data": {"baz": "bax", "foo": "bar"}, |
| "valid": true |
| }, |
| { |
| "description": "another object is invalid", |
| "data": {"foo": "bar"}, |
| "valid": false |
| }, |
| { |
| "description": "another type is invalid", |
| "data": [1, 2], |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with array", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": [{ "foo": "bar" }] |
| }, |
| "tests": [ |
| { |
| "description": "same array is valid", |
| "data": [{"foo": "bar"}], |
| "valid": true |
| }, |
| { |
| "description": "another array item is invalid", |
| "data": [2], |
| "valid": false |
| }, |
| { |
| "description": "array with additional items is invalid", |
| "data": [1, 2, 3], |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with null", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": null |
| }, |
| "tests": [ |
| { |
| "description": "null is valid", |
| "data": null, |
| "valid": true |
| }, |
| { |
| "description": "not null is invalid", |
| "data": 0, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with false does not match 0", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": false |
| }, |
| "tests": [ |
| { |
| "description": "false is valid", |
| "data": false, |
| "valid": true |
| }, |
| { |
| "description": "integer zero is invalid", |
| "data": 0, |
| "valid": false |
| }, |
| { |
| "description": "float zero is invalid", |
| "data": 0.0, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with true does not match 1", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": true |
| }, |
| "tests": [ |
| { |
| "description": "true is valid", |
| "data": true, |
| "valid": true |
| }, |
| { |
| "description": "integer one is invalid", |
| "data": 1, |
| "valid": false |
| }, |
| { |
| "description": "float one is invalid", |
| "data": 1.0, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with [false] does not match [0]", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": [false] |
| }, |
| "tests": [ |
| { |
| "description": "[false] is valid", |
| "data": [false], |
| "valid": true |
| }, |
| { |
| "description": "[0] is invalid", |
| "data": [0], |
| "valid": false |
| }, |
| { |
| "description": "[0.0] is invalid", |
| "data": [0.0], |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with [true] does not match [1]", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": [true] |
| }, |
| "tests": [ |
| { |
| "description": "[true] is valid", |
| "data": [true], |
| "valid": true |
| }, |
| { |
| "description": "[1] is invalid", |
| "data": [1], |
| "valid": false |
| }, |
| { |
| "description": "[1.0] is invalid", |
| "data": [1.0], |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with {\"a\": false} does not match {\"a\": 0}", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": {"a": false} |
| }, |
| "tests": [ |
| { |
| "description": "{\"a\": false} is valid", |
| "data": {"a": false}, |
| "valid": true |
| }, |
| { |
| "description": "{\"a\": 0} is invalid", |
| "data": {"a": 0}, |
| "valid": false |
| }, |
| { |
| "description": "{\"a\": 0.0} is invalid", |
| "data": {"a": 0.0}, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with {\"a\": true} does not match {\"a\": 1}", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": {"a": true} |
| }, |
| "tests": [ |
| { |
| "description": "{\"a\": true} is valid", |
| "data": {"a": true}, |
| "valid": true |
| }, |
| { |
| "description": "{\"a\": 1} is invalid", |
| "data": {"a": 1}, |
| "valid": false |
| }, |
| { |
| "description": "{\"a\": 1.0} is invalid", |
| "data": {"a": 1.0}, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with 0 does not match other zero-like types", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": 0 |
| }, |
| "tests": [ |
| { |
| "description": "false is invalid", |
| "data": false, |
| "valid": false |
| }, |
| { |
| "description": "integer zero is valid", |
| "data": 0, |
| "valid": true |
| }, |
| { |
| "description": "float zero is valid", |
| "data": 0.0, |
| "valid": true |
| }, |
| { |
| "description": "empty object is invalid", |
| "data": {}, |
| "valid": false |
| }, |
| { |
| "description": "empty array is invalid", |
| "data": [], |
| "valid": false |
| }, |
| { |
| "description": "empty string is invalid", |
| "data": "", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "const with 1 does not match true", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": 1 |
| }, |
| "tests": [ |
| { |
| "description": "true is invalid", |
| "data": true, |
| "valid": false |
| }, |
| { |
| "description": "integer one is valid", |
| "data": 1, |
| "valid": true |
| }, |
| { |
| "description": "float one is valid", |
| "data": 1.0, |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "const with -2.0 matches integer and float types", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": -2.0 |
| }, |
| "tests": [ |
| { |
| "description": "integer -2 is valid", |
| "data": -2, |
| "valid": true |
| }, |
| { |
| "description": "integer 2 is invalid", |
| "data": 2, |
| "valid": false |
| }, |
| { |
| "description": "float -2.0 is valid", |
| "data": -2.0, |
| "valid": true |
| }, |
| { |
| "description": "float 2.0 is invalid", |
| "data": 2.0, |
| "valid": false |
| }, |
| { |
| "description": "float -2.00001 is invalid", |
| "data": -2.00001, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "float and integers are equal up to 64-bit representation limits", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": 9007199254740992 |
| }, |
| "tests": [ |
| { |
| "description": "integer is valid", |
| "data": 9007199254740992, |
| "valid": true |
| }, |
| { |
| "description": "integer minus one is invalid", |
| "data": 9007199254740991, |
| "valid": false |
| }, |
| { |
| "description": "float is valid", |
| "data": 9007199254740992.0, |
| "valid": true |
| }, |
| { |
| "description": "float minus one is invalid", |
| "data": 9007199254740991.0, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "nul characters in strings", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "const": "hello\u0000there" |
| }, |
| "tests": [ |
| { |
| "description": "match string with nul", |
| "data": "hello\u0000there", |
| "valid": true |
| }, |
| { |
| "description": "do not match string lacking nul", |
| "data": "hellothere", |
| "valid": false |
| } |
| ] |
| } |
| ] |