cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/additionalProperties.json (about) 1 [ 2 { 3 "description": "additionalProperties being false does not allow other properties", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "properties": { 7 "foo": {}, 8 "bar": {} 9 }, 10 "patternProperties": { 11 "^v": {} 12 }, 13 "additionalProperties": false 14 }, 15 "tests": [ 16 { 17 "description": "no additional properties is valid", 18 "data": { 19 "foo": 1 20 }, 21 "valid": true 22 }, 23 { 24 "description": "an additional property is invalid", 25 "data": { 26 "foo": 1, 27 "bar": 2, 28 "quux": "boom" 29 }, 30 "valid": false 31 }, 32 { 33 "description": "ignores arrays", 34 "data": [ 35 1, 36 2, 37 3 38 ], 39 "valid": true 40 }, 41 { 42 "description": "ignores strings", 43 "data": "foobarbaz", 44 "valid": true 45 }, 46 { 47 "description": "ignores other non-objects", 48 "data": 12, 49 "valid": true 50 }, 51 { 52 "description": "patternProperties are not additional properties", 53 "data": { 54 "foo": 1, 55 "vroom": 2 56 }, 57 "valid": true 58 } 59 ] 60 }, 61 { 62 "description": "non-ASCII pattern with additionalProperties", 63 "schema": { 64 "$schema": "https://json-schema.org/draft/2020-12/schema", 65 "patternProperties": { 66 "^á": {} 67 }, 68 "additionalProperties": false 69 }, 70 "tests": [ 71 { 72 "description": "matching the pattern is valid", 73 "data": { 74 "ármányos": 2 75 }, 76 "valid": true 77 }, 78 { 79 "description": "not matching the pattern is invalid", 80 "data": { 81 "élmény": 2 82 }, 83 "valid": false 84 } 85 ] 86 }, 87 { 88 "description": "additionalProperties with schema", 89 "schema": { 90 "$schema": "https://json-schema.org/draft/2020-12/schema", 91 "properties": { 92 "foo": {}, 93 "bar": {} 94 }, 95 "additionalProperties": { 96 "type": "boolean" 97 } 98 }, 99 "tests": [ 100 { 101 "description": "no additional properties is valid", 102 "data": { 103 "foo": 1 104 }, 105 "valid": true 106 }, 107 { 108 "description": "an additional valid property is valid", 109 "data": { 110 "foo": 1, 111 "bar": 2, 112 "quux": true 113 }, 114 "valid": true 115 }, 116 { 117 "description": "an additional invalid property is invalid", 118 "data": { 119 "foo": 1, 120 "bar": 2, 121 "quux": 12 122 }, 123 "valid": false 124 } 125 ] 126 }, 127 { 128 "description": "additionalProperties can exist by itself", 129 "schema": { 130 "$schema": "https://json-schema.org/draft/2020-12/schema", 131 "additionalProperties": { 132 "type": "boolean" 133 } 134 }, 135 "tests": [ 136 { 137 "description": "an additional valid property is valid", 138 "data": { 139 "foo": true 140 }, 141 "valid": true 142 }, 143 { 144 "description": "an additional invalid property is invalid", 145 "data": { 146 "foo": 1 147 }, 148 "valid": false 149 } 150 ] 151 }, 152 { 153 "description": "additionalProperties are allowed by default", 154 "schema": { 155 "$schema": "https://json-schema.org/draft/2020-12/schema", 156 "properties": { 157 "foo": {}, 158 "bar": {} 159 } 160 }, 161 "tests": [ 162 { 163 "description": "additional properties are allowed", 164 "data": { 165 "foo": 1, 166 "bar": 2, 167 "quux": true 168 }, 169 "valid": true 170 } 171 ] 172 }, 173 { 174 "description": "additionalProperties does not look in applicators", 175 "schema": { 176 "$schema": "https://json-schema.org/draft/2020-12/schema", 177 "allOf": [ 178 { 179 "properties": { 180 "foo": {} 181 } 182 } 183 ], 184 "additionalProperties": { 185 "type": "boolean" 186 } 187 }, 188 "tests": [ 189 { 190 "description": "properties defined in allOf are not examined", 191 "data": { 192 "foo": 1, 193 "bar": true 194 }, 195 "valid": false 196 } 197 ] 198 }, 199 { 200 "description": "additionalProperties with null valued instance properties", 201 "schema": { 202 "$schema": "https://json-schema.org/draft/2020-12/schema", 203 "additionalProperties": { 204 "type": "null" 205 } 206 }, 207 "tests": [ 208 { 209 "description": "allows null values", 210 "data": { 211 "foo": null 212 }, 213 "valid": true 214 } 215 ] 216 }, 217 { 218 "description": "additionalProperties with propertyNames", 219 "schema": { 220 "$schema": "https://json-schema.org/draft/2020-12/schema", 221 "propertyNames": { 222 "maxLength": 5 223 }, 224 "additionalProperties": { 225 "type": "number" 226 } 227 }, 228 "skip": { 229 "v2": "extract error: cannot compile resulting schema: reference \"strings\" in label expression refers to field against which it would be matched:\n generated.cue:6:3\n", 230 "v3": "extract error: cannot compile resulting schema: reference \"strings\" in label expression refers to field against which it would be matched:\n generated.cue:6:3\n" 231 }, 232 "tests": [ 233 { 234 "description": "Valid against both keywords", 235 "data": { 236 "apple": 4 237 }, 238 "valid": true, 239 "skip": { 240 "v2": "could not compile schema", 241 "v3": "could not compile schema" 242 } 243 }, 244 { 245 "description": "Valid against propertyNames, but not additionalProperties", 246 "data": { 247 "fig": 2, 248 "pear": "available" 249 }, 250 "valid": false, 251 "skip": { 252 "v2": "could not compile schema", 253 "v3": "could not compile schema" 254 } 255 } 256 ] 257 }, 258 { 259 "description": "dependentSchemas with additionalProperties", 260 "schema": { 261 "$schema": "https://json-schema.org/draft/2020-12/schema", 262 "properties": { 263 "foo2": {} 264 }, 265 "dependentSchemas": { 266 "foo": {}, 267 "foo2": { 268 "properties": { 269 "bar": {} 270 } 271 } 272 }, 273 "additionalProperties": false 274 }, 275 "skip": { 276 "v2": "extract error: keyword \"dependentSchemas\" not yet implemented", 277 "v3": "extract error: keyword \"dependentSchemas\" not yet implemented" 278 }, 279 "tests": [ 280 { 281 "description": "additionalProperties doesn't consider dependentSchemas", 282 "data": { 283 "foo": "" 284 }, 285 "valid": false, 286 "skip": { 287 "v2": "could not compile schema", 288 "v3": "could not compile schema" 289 } 290 }, 291 { 292 "description": "additionalProperties can't see bar", 293 "data": { 294 "bar": "" 295 }, 296 "valid": false, 297 "skip": { 298 "v2": "could not compile schema", 299 "v3": "could not compile schema" 300 } 301 }, 302 { 303 "description": "additionalProperties can't see bar even when foo2 is present", 304 "data": { 305 "foo2": "", 306 "bar": "" 307 }, 308 "valid": false, 309 "skip": { 310 "v2": "could not compile schema", 311 "v3": "could not compile schema" 312 } 313 } 314 ] 315 } 316 ]