| [ |
| { |
| "description": "dependencies", |
| "schema": { |
| "dependencies": {"bar": ["foo"]} |
| }, |
| "tests": [ |
| { |
| "description": "neither", |
| "data": {}, |
| "valid": true |
| }, |
| { |
| "description": "nondependant", |
| "data": {"foo": 1}, |
| "valid": true |
| }, |
| { |
| "description": "with dependency", |
| "data": {"foo": 1, "bar": 2}, |
| "valid": true |
| }, |
| { |
| "description": "missing dependency", |
| "data": {"bar": 2}, |
| "valid": false |
| }, |
| { |
| "description": "ignores arrays", |
| "data": ["bar"], |
| "valid": true |
| }, |
| { |
| "description": "ignores strings", |
| "data": "foobar", |
| "valid": true |
| }, |
| { |
| "description": "ignores other non-objects", |
| "data": 12, |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "dependencies with empty array", |
| "schema": { |
| "dependencies": {"bar": []} |
| }, |
| "tests": [ |
| { |
| "description": "empty object", |
| "data": {}, |
| "valid": true |
| }, |
| { |
| "description": "object with one property", |
| "data": {"bar": 2}, |
| "valid": true |
| }, |
| { |
| "description": "non-object is valid", |
| "data": 1, |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "multiple dependencies", |
| "schema": { |
| "dependencies": {"quux": ["foo", "bar"]} |
| }, |
| "tests": [ |
| { |
| "description": "neither", |
| "data": {}, |
| "valid": true |
| }, |
| { |
| "description": "nondependants", |
| "data": {"foo": 1, "bar": 2}, |
| "valid": true |
| }, |
| { |
| "description": "with dependencies", |
| "data": {"foo": 1, "bar": 2, "quux": 3}, |
| "valid": true |
| }, |
| { |
| "description": "missing dependency", |
| "data": {"foo": 1, "quux": 2}, |
| "valid": false |
| }, |
| { |
| "description": "missing other dependency", |
| "data": {"bar": 1, "quux": 2}, |
| "valid": false |
| }, |
| { |
| "description": "missing both dependencies", |
| "data": {"quux": 1}, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "multiple dependencies subschema", |
| "schema": { |
| "dependencies": { |
| "bar": { |
| "properties": { |
| "foo": {"type": "integer"}, |
| "bar": {"type": "integer"} |
| } |
| } |
| } |
| }, |
| "tests": [ |
| { |
| "description": "valid", |
| "data": {"foo": 1, "bar": 2}, |
| "valid": true |
| }, |
| { |
| "description": "no dependency", |
| "data": {"foo": "quux"}, |
| "valid": true |
| }, |
| { |
| "description": "wrong type", |
| "data": {"foo": "quux", "bar": 2}, |
| "valid": false |
| }, |
| { |
| "description": "wrong type other", |
| "data": {"foo": 2, "bar": "quux"}, |
| "valid": false |
| }, |
| { |
| "description": "wrong type both", |
| "data": {"foo": "quux", "bar": "quux"}, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "dependencies with boolean subschemas", |
| "schema": { |
| "dependencies": { |
| "foo": true, |
| "bar": false |
| } |
| }, |
| "tests": [ |
| { |
| "description": "object with property having schema true is valid", |
| "data": {"foo": 1}, |
| "valid": true |
| }, |
| { |
| "description": "object with property having schema false is invalid", |
| "data": {"bar": 2}, |
| "valid": false |
| }, |
| { |
| "description": "object with both properties is invalid", |
| "data": {"foo": 1, "bar": 2}, |
| "valid": false |
| }, |
| { |
| "description": "empty object is valid", |
| "data": {}, |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "dependencies with escaped characters", |
| "schema": { |
| "dependencies": { |
| "foo\nbar": ["foo\rbar"], |
| "foo\tbar": { |
| "minProperties": 4 |
| }, |
| "foo'bar": {"required": ["foo\"bar"]}, |
| "foo\"bar": ["foo'bar"] |
| } |
| }, |
| "tests": [ |
| { |
| "description": "valid object 1", |
| "data": { |
| "foo\nbar": 1, |
| "foo\rbar": 2 |
| }, |
| "valid": true |
| }, |
| { |
| "description": "valid object 2", |
| "data": { |
| "foo\tbar": 1, |
| "a": 2, |
| "b": 3, |
| "c": 4 |
| }, |
| "valid": true |
| }, |
| { |
| "description": "valid object 3", |
| "data": { |
| "foo'bar": 1, |
| "foo\"bar": 2 |
| }, |
| "valid": true |
| }, |
| { |
| "description": "invalid object 1", |
| "data": { |
| "foo\nbar": 1, |
| "foo": 2 |
| }, |
| "valid": false |
| }, |
| { |
| "description": "invalid object 2", |
| "data": { |
| "foo\tbar": 1, |
| "a": 2 |
| }, |
| "valid": false |
| }, |
| { |
| "description": "invalid object 3", |
| "data": { |
| "foo'bar": 1 |
| }, |
| "valid": false |
| }, |
| { |
| "description": "invalid object 4", |
| "data": { |
| "foo\"bar": 2 |
| }, |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "dependent subschema incompatible with root", |
| "schema": { |
| "properties": { |
| "foo": {} |
| }, |
| "dependencies": { |
| "foo": { |
| "properties": { |
| "bar": {} |
| }, |
| "additionalProperties": false |
| } |
| } |
| }, |
| "tests": [ |
| { |
| "description": "matches root", |
| "data": {"foo": 1}, |
| "valid": false |
| }, |
| { |
| "description": "matches dependency", |
| "data": {"bar": 1}, |
| "valid": true |
| }, |
| { |
| "description": "matches both", |
| "data": {"foo": 1, "bar": 2}, |
| "valid": false |
| }, |
| { |
| "description": "no dependency", |
| "data": {"baz": 1}, |
| "valid": true |
| } |
| ] |
| } |
| ] |