1[ 2 { 3 "description": "single dependency", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "dependentRequired": {"bar": ["foo"]} 7 }, 8 "tests": [ 9 { 10 "description": "neither", 11 "data": {}, 12 "valid": true 13 }, 14 { 15 "description": "nondependant", 16 "data": {"foo": 1}, 17 "valid": true 18 }, 19 { 20 "description": "with dependency", 21 "data": {"foo": 1, "bar": 2}, 22 "valid": true 23 }, 24 { 25 "description": "missing dependency", 26 "data": {"bar": 2}, 27 "valid": false 28 }, 29 { 30 "description": "ignores arrays", 31 "data": ["bar"], 32 "valid": true 33 }, 34 { 35 "description": "ignores strings", 36 "data": "foobar", 37 "valid": true 38 }, 39 { 40 "description": "ignores other non-objects", 41 "data": 12, 42 "valid": true 43 } 44 ] 45 }, 46 { 47 "description": "empty dependents", 48 "schema": { 49 "$schema": "https://json-schema.org/draft/2020-12/schema", 50 "dependentRequired": {"bar": []} 51 }, 52 "tests": [ 53 { 54 "description": "empty object", 55 "data": {}, 56 "valid": true 57 }, 58 { 59 "description": "object with one property", 60 "data": {"bar": 2}, 61 "valid": true 62 }, 63 { 64 "description": "non-object is valid", 65 "data": 1, 66 "valid": true 67 } 68 ] 69 }, 70 { 71 "description": "multiple dependents required", 72 "schema": { 73 "$schema": "https://json-schema.org/draft/2020-12/schema", 74 "dependentRequired": {"quux": ["foo", "bar"]} 75 }, 76 "tests": [ 77 { 78 "description": "neither", 79 "data": {}, 80 "valid": true 81 }, 82 { 83 "description": "nondependants", 84 "data": {"foo": 1, "bar": 2}, 85 "valid": true 86 }, 87 { 88 "description": "with dependencies", 89 "data": {"foo": 1, "bar": 2, "quux": 3}, 90 "valid": true 91 }, 92 { 93 "description": "missing dependency", 94 "data": {"foo": 1, "quux": 2}, 95 "valid": false 96 }, 97 { 98 "description": "missing other dependency", 99 "data": {"bar": 1, "quux": 2}, 100 "valid": false 101 }, 102 { 103 "description": "missing both dependencies", 104 "data": {"quux": 1}, 105 "valid": false 106 } 107 ] 108 }, 109 { 110 "description": "dependencies with escaped characters", 111 "schema": { 112 "$schema": "https://json-schema.org/draft/2020-12/schema", 113 "dependentRequired": { 114 "foo\nbar": ["foo\rbar"], 115 "foo\"bar": ["foo'bar"] 116 } 117 }, 118 "tests": [ 119 { 120 "description": "CRLF", 121 "data": { 122 "foo\nbar": 1, 123 "foo\rbar": 2 124 }, 125 "valid": true 126 }, 127 { 128 "description": "quoted quotes", 129 "data": { 130 "foo'bar": 1, 131 "foo\"bar": 2 132 }, 133 "valid": true 134 }, 135 { 136 "description": "CRLF missing dependent", 137 "data": { 138 "foo\nbar": 1, 139 "foo": 2 140 }, 141 "valid": false 142 }, 143 { 144 "description": "quoted quotes missing dependent", 145 "data": { 146 "foo\"bar": 2 147 }, 148 "valid": false 149 } 150 ] 151 } 152] 153