1[ 2 { 3 "description": "dependencies", 4 "schema": { 5 "dependencies": {"bar": ["foo"]} 6 }, 7 "tests": [ 8 { 9 "description": "neither", 10 "data": {}, 11 "valid": true 12 }, 13 { 14 "description": "nondependant", 15 "data": {"foo": 1}, 16 "valid": true 17 }, 18 { 19 "description": "with dependency", 20 "data": {"foo": 1, "bar": 2}, 21 "valid": true 22 }, 23 { 24 "description": "missing dependency", 25 "data": {"bar": 2}, 26 "valid": false 27 }, 28 { 29 "description": "ignores arrays", 30 "data": ["bar"], 31 "valid": true 32 }, 33 { 34 "description": "ignores strings", 35 "data": "foobar", 36 "valid": true 37 }, 38 { 39 "description": "ignores other non-objects", 40 "data": 12, 41 "valid": true 42 } 43 ] 44 }, 45 { 46 "description": "multiple dependencies", 47 "schema": { 48 "dependencies": {"quux": ["foo", "bar"]} 49 }, 50 "tests": [ 51 { 52 "description": "neither", 53 "data": {}, 54 "valid": true 55 }, 56 { 57 "description": "nondependants", 58 "data": {"foo": 1, "bar": 2}, 59 "valid": true 60 }, 61 { 62 "description": "with dependencies", 63 "data": {"foo": 1, "bar": 2, "quux": 3}, 64 "valid": true 65 }, 66 { 67 "description": "missing dependency", 68 "data": {"foo": 1, "quux": 2}, 69 "valid": false 70 }, 71 { 72 "description": "missing other dependency", 73 "data": {"bar": 1, "quux": 2}, 74 "valid": false 75 }, 76 { 77 "description": "missing both dependencies", 78 "data": {"quux": 1}, 79 "valid": false 80 } 81 ] 82 }, 83 { 84 "description": "multiple dependencies subschema", 85 "schema": { 86 "dependencies": { 87 "bar": { 88 "properties": { 89 "foo": {"type": "integer"}, 90 "bar": {"type": "integer"} 91 } 92 } 93 } 94 }, 95 "tests": [ 96 { 97 "description": "valid", 98 "data": {"foo": 1, "bar": 2}, 99 "valid": true 100 }, 101 { 102 "description": "no dependency", 103 "data": {"foo": "quux"}, 104 "valid": true 105 }, 106 { 107 "description": "wrong type", 108 "data": {"foo": "quux", "bar": 2}, 109 "valid": false 110 }, 111 { 112 "description": "wrong type other", 113 "data": {"foo": 2, "bar": "quux"}, 114 "valid": false 115 }, 116 { 117 "description": "wrong type both", 118 "data": {"foo": "quux", "bar": "quux"}, 119 "valid": false 120 } 121 ] 122 }, 123 { 124 "description": "dependencies with escaped characters", 125 "schema": { 126 "dependencies": { 127 "foo\nbar": ["foo\rbar"], 128 "foo\tbar": { 129 "minProperties": 4 130 }, 131 "foo'bar": {"required": ["foo\"bar"]}, 132 "foo\"bar": ["foo'bar"] 133 } 134 }, 135 "tests": [ 136 { 137 "description": "valid object 1", 138 "data": { 139 "foo\nbar": 1, 140 "foo\rbar": 2 141 }, 142 "valid": true 143 }, 144 { 145 "description": "valid object 2", 146 "data": { 147 "foo\tbar": 1, 148 "a": 2, 149 "b": 3, 150 "c": 4 151 }, 152 "valid": true 153 }, 154 { 155 "description": "valid object 3", 156 "data": { 157 "foo'bar": 1, 158 "foo\"bar": 2 159 }, 160 "valid": true 161 }, 162 { 163 "description": "invalid object 1", 164 "data": { 165 "foo\nbar": 1, 166 "foo": 2 167 }, 168 "valid": false 169 }, 170 { 171 "description": "invalid object 2", 172 "data": { 173 "foo\tbar": 1, 174 "a": 2 175 }, 176 "valid": false 177 }, 178 { 179 "description": "invalid object 3", 180 "data": { 181 "foo'bar": 1 182 }, 183 "valid": false 184 }, 185 { 186 "description": "invalid object 4", 187 "data": { 188 "foo\"bar": 2 189 }, 190 "valid": false 191 } 192 ] 193 }, 194 { 195 "description": "dependent subschema incompatible with root", 196 "schema": { 197 "properties": { 198 "foo": {} 199 }, 200 "dependencies": { 201 "foo": { 202 "properties": { 203 "bar": {} 204 }, 205 "additionalProperties": false 206 } 207 } 208 }, 209 "tests": [ 210 { 211 "description": "matches root", 212 "data": {"foo": 1}, 213 "valid": false 214 }, 215 { 216 "description": "matches dependency", 217 "data": {"bar": 1}, 218 "valid": true 219 }, 220 { 221 "description": "matches both", 222 "data": {"foo": 1, "bar": 2}, 223 "valid": false 224 }, 225 { 226 "description": "no dependency", 227 "data": {"baz": 1}, 228 "valid": true 229 } 230 ] 231 } 232] 233