github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft2019-09/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/2019-09/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/2019-09/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/2019-09/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/2019-09/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/2019-09/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/2019-09/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/2019-09/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/2019-09/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": "dependentSchemas with additionalProperties", 182 "schema": { 183 "$schema": "https://json-schema.org/draft/2019-09/schema", 184 "properties": {"foo2": {}}, 185 "dependentSchemas": { 186 "foo" : {}, 187 "foo2": { 188 "properties": { 189 "bar":{} 190 } 191 } 192 }, 193 "additionalProperties": false 194 }, 195 "tests": [ 196 { 197 "description": "additionalProperties doesn't consider dependentSchemas", 198 "data": {"foo": ""}, 199 "valid": false 200 }, 201 { 202 "description": "additionalProperties can't see bar", 203 "data": {"bar": ""}, 204 "valid": false 205 }, 206 { 207 "description": "additionalProperties can't see bar even when foo2 is present", 208 "data": { "foo2": "", "bar": ""}, 209 "valid": false 210 } 211 ] 212 } 213 ]