| [ |
| { |
| "description": "single dependency", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "dependentRequired": {"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": "empty dependents", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "dependentRequired": {"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 dependents required", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "dependentRequired": {"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": "dependencies with escaped characters", |
| "schema": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "dependentRequired": { |
| "foo\nbar": ["foo\rbar"], |
| "foo\"bar": ["foo'bar"] |
| } |
| }, |
| "tests": [ |
| { |
| "description": "CRLF", |
| "data": { |
| "foo\nbar": 1, |
| "foo\rbar": 2 |
| }, |
| "valid": true |
| }, |
| { |
| "description": "quoted quotes", |
| "data": { |
| "foo'bar": 1, |
| "foo\"bar": 2 |
| }, |
| "valid": true |
| }, |
| { |
| "description": "CRLF missing dependent", |
| "data": { |
| "foo\nbar": 1, |
| "foo": 2 |
| }, |
| "valid": false |
| }, |
| { |
| "description": "quoted quotes missing dependent", |
| "data": { |
| "foo\"bar": 2 |
| }, |
| "valid": false |
| } |
| ] |
| } |
| ] |