github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft-next/additionalProperties.json (about) 1 [ 2 { 3 "description": 4 "additionalProperties being false does not allow other properties", 5 "schema": { 6 "$schema": "https://json-schema.org/draft/next/schema", 7 "properties": {"foo": {}, "bar": {}}, 8 "patternProperties": { "^v": {} }, 9 "additionalProperties": false 10 }, 11 "tests": [ 12 { 13 "description": "no additional properties is valid", 14 "data": {"foo": 1}, 15 "valid": true 16 }, 17 { 18 "description": "an additional property is invalid", 19 "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, 20 "valid": false 21 }, 22 { 23 "description": "ignores arrays", 24 "data": [1, 2, 3], 25 "valid": true 26 }, 27 { 28 "description": "ignores strings", 29 "data": "foobarbaz", 30 "valid": true 31 }, 32 { 33 "description": "ignores other non-objects", 34 "data": 12, 35 "valid": true 36 }, 37 { 38 "description": "patternProperties are not additional properties", 39 "data": {"foo":1, "vroom": 2}, 40 "valid": true 41 } 42 ] 43 }, 44 { 45 "description": "non-ASCII pattern with additionalProperties", 46 "schema": { 47 "$schema": "https://json-schema.org/draft/next/schema", 48 "patternProperties": {"^á": {}}, 49 "additionalProperties": false 50 }, 51 "tests": [ 52 { 53 "description": "matching the pattern is valid", 54 "data": {"ármányos": 2}, 55 "valid": true 56 }, 57 { 58 "description": "not matching the pattern is invalid", 59 "data": {"élmény": 2}, 60 "valid": false 61 } 62 ] 63 }, 64 { 65 "description": "additionalProperties with schema", 66 "schema": { 67 "$schema": "https://json-schema.org/draft/next/schema", 68 "properties": {"foo": {}, "bar": {}}, 69 "additionalProperties": {"type": "boolean"} 70 }, 71 "tests": [ 72 { 73 "description": "no additional properties is valid", 74 "data": {"foo": 1}, 75 "valid": true 76 }, 77 { 78 "description": "an additional valid property is valid", 79 "data": {"foo" : 1, "bar" : 2, "quux" : true}, 80 "valid": true 81 }, 82 { 83 "description": "an additional invalid property is invalid", 84 "data": {"foo" : 1, "bar" : 2, "quux" : 12}, 85 "valid": false 86 } 87 ] 88 }, 89 { 90 "description": 91 "additionalProperties can exist by itself", 92 "schema": { 93 "$schema": "https://json-schema.org/draft/next/schema", 94 "additionalProperties": {"type": "boolean"} 95 }, 96 "tests": [ 97 { 98 "description": "an additional valid property is valid", 99 "data": {"foo" : true}, 100 "valid": true 101 }, 102 { 103 "description": "an additional invalid property is invalid", 104 "data": {"foo" : 1}, 105 "valid": false 106 } 107 ] 108 }, 109 { 110 "description": "additionalProperties are allowed by default", 111 "schema": { 112 "$schema": "https://json-schema.org/draft/next/schema", 113 "properties": {"foo": {}, "bar": {}} 114 }, 115 "tests": [ 116 { 117 "description": "additional properties are allowed", 118 "data": {"foo": 1, "bar": 2, "quux": true}, 119 "valid": true 120 } 121 ] 122 }, 123 { 124 "description": "additionalProperties does not look in applicators", 125 "schema": { 126 "$schema": "https://json-schema.org/draft/next/schema", 127 "allOf": [ 128 {"properties": {"foo": {}}} 129 ], 130 "additionalProperties": {"type": "boolean"} 131 }, 132 "tests": [ 133 { 134 "description": "properties defined in allOf are not examined", 135 "data": {"foo": 1, "bar": true}, 136 "valid": false 137 } 138 ] 139 }, 140 { 141 "description": "additionalProperties with null valued instance properties", 142 "schema": { 143 "$schema": "https://json-schema.org/draft/next/schema", 144 "additionalProperties": { 145 "type": "null" 146 } 147 }, 148 "tests": [ 149 { 150 "description": "allows null values", 151 "data": {"foo": null}, 152 "valid": true 153 } 154 ] 155 }, 156 { 157 "description": "additionalProperties with propertyNames", 158 "schema": { 159 "$schema": "https://json-schema.org/draft/next/schema", 160 "propertyNames": { 161 "maxLength": 5 162 }, 163 "additionalProperties": { 164 "type": "number" 165 } 166 }, 167 "tests": [ 168 { 169 "description": "Valid against both keywords", 170 "data": { "apple": 4 }, 171 "valid": true 172 }, 173 { 174 "description": "Valid against propertyNames, but not additionalProperties", 175 "data": { "fig": 2, "pear": "available" }, 176 "valid": false 177 } 178 ] 179 }, 180 { 181 "description": "propertyDependencies with additionalProperties", 182 "schema": { 183 "$schema": "https://json-schema.org/draft/next/schema", 184 "properties" : {"foo2" : {}}, 185 "propertyDependencies": { 186 "foo" : {}, 187 "foo2": { 188 "bar": { 189 "properties": { 190 "buz": {} 191 } 192 } 193 } 194 }, 195 "additionalProperties": false 196 }, 197 "tests": [ 198 { 199 "description": "additionalProperties doesn't consider propertyDependencies properties" , 200 "data": {"foo": ""}, 201 "valid": false 202 }, 203 { 204 "description": "additionalProperties can't see buz even when foo2 is present", 205 "data": {"foo2": "bar", "buz": ""}, 206 "valid": false 207 }, 208 { 209 "description": "additionalProperties can't see buz", 210 "data": {"buz": ""}, 211 "valid": false 212 } 213 ] 214 }, 215 { 216 "description": "dependentSchemas with additionalProperties", 217 "schema": { 218 "$schema": "https://json-schema.org/draft/next/schema", 219 "properties": {"foo2": {}}, 220 "dependentSchemas": { 221 "foo": {}, 222 "foo2": { 223 "properties": { 224 "bar": {} 225 } 226 } 227 }, 228 "additionalProperties": false 229 }, 230 "tests": [ 231 { 232 "description": "additionalProperties doesn't consider dependentSchemas", 233 "data": {"foo": ""}, 234 "valid": false 235 }, 236 { 237 "description": "additionalProperties can't see bar", 238 "data": {"bar": ""}, 239 "valid": false 240 }, 241 { 242 "description": "additionalProperties can't see bar even when foo2 is present", 243 "data": {"foo2": "", "bar": ""}, 244 "valid": false 245 } 246 ] 247 } 248 ]