cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2019-09/patternProperties.json (about) 1 [ 2 { 3 "description": "patternProperties validates properties matching a regex", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2019-09/schema", 6 "patternProperties": { 7 "f.*o": { 8 "type": "integer" 9 } 10 } 11 }, 12 "tests": [ 13 { 14 "description": "a single valid match is valid", 15 "data": { 16 "foo": 1 17 }, 18 "valid": true 19 }, 20 { 21 "description": "multiple valid matches is valid", 22 "data": { 23 "foo": 1, 24 "foooooo": 2 25 }, 26 "valid": true 27 }, 28 { 29 "description": "a single invalid match is invalid", 30 "data": { 31 "foo": "bar", 32 "fooooo": 2 33 }, 34 "valid": false 35 }, 36 { 37 "description": "multiple invalid matches is invalid", 38 "data": { 39 "foo": "bar", 40 "foooooo": "baz" 41 }, 42 "valid": false 43 }, 44 { 45 "description": "ignores arrays", 46 "data": [ 47 "foo" 48 ], 49 "valid": true 50 }, 51 { 52 "description": "ignores strings", 53 "data": "foo", 54 "valid": true 55 }, 56 { 57 "description": "ignores other non-objects", 58 "data": 12, 59 "valid": true 60 } 61 ] 62 }, 63 { 64 "description": "multiple simultaneous patternProperties are validated", 65 "schema": { 66 "$schema": "https://json-schema.org/draft/2019-09/schema", 67 "patternProperties": { 68 "a*": { 69 "type": "integer" 70 }, 71 "aaa*": { 72 "maximum": 20 73 } 74 } 75 }, 76 "tests": [ 77 { 78 "description": "a single valid match is valid", 79 "data": { 80 "a": 21 81 }, 82 "valid": true 83 }, 84 { 85 "description": "a simultaneous match is valid", 86 "data": { 87 "aaaa": 18 88 }, 89 "valid": true 90 }, 91 { 92 "description": "multiple matches is valid", 93 "data": { 94 "a": 21, 95 "aaaa": 18 96 }, 97 "valid": true 98 }, 99 { 100 "description": "an invalid due to one is invalid", 101 "data": { 102 "a": "bar" 103 }, 104 "valid": false 105 }, 106 { 107 "description": "an invalid due to the other is invalid", 108 "data": { 109 "aaaa": 31 110 }, 111 "valid": false 112 }, 113 { 114 "description": "an invalid due to both is invalid", 115 "data": { 116 "aaa": "foo", 117 "aaaa": 31 118 }, 119 "valid": false 120 } 121 ] 122 }, 123 { 124 "description": "regexes are not anchored by default and are case sensitive", 125 "schema": { 126 "$schema": "https://json-schema.org/draft/2019-09/schema", 127 "patternProperties": { 128 "[0-9]{2,}": { 129 "type": "boolean" 130 }, 131 "X_": { 132 "type": "string" 133 } 134 } 135 }, 136 "tests": [ 137 { 138 "description": "non recognized members are ignored", 139 "data": { 140 "answer 1": "42" 141 }, 142 "valid": true 143 }, 144 { 145 "description": "recognized members are accounted for", 146 "data": { 147 "a31b": null 148 }, 149 "valid": false 150 }, 151 { 152 "description": "regexes are case sensitive", 153 "data": { 154 "a_x_3": 3 155 }, 156 "valid": true 157 }, 158 { 159 "description": "regexes are case sensitive, 2", 160 "data": { 161 "a_X_3": 3 162 }, 163 "valid": false 164 } 165 ] 166 }, 167 { 168 "description": "patternProperties with boolean schemas", 169 "schema": { 170 "$schema": "https://json-schema.org/draft/2019-09/schema", 171 "patternProperties": { 172 "f.*": true, 173 "b.*": false 174 } 175 }, 176 "tests": [ 177 { 178 "description": "object with property matching schema true is valid", 179 "data": { 180 "foo": 1 181 }, 182 "valid": true 183 }, 184 { 185 "description": "object with property matching schema false is invalid", 186 "data": { 187 "bar": 2 188 }, 189 "valid": false 190 }, 191 { 192 "description": "object with both properties is invalid", 193 "data": { 194 "foo": 1, 195 "bar": 2 196 }, 197 "valid": false 198 }, 199 { 200 "description": "object with a property matching both true and false is invalid", 201 "data": { 202 "foobar": 1 203 }, 204 "valid": false 205 }, 206 { 207 "description": "empty object is valid", 208 "data": {}, 209 "valid": true 210 } 211 ] 212 }, 213 { 214 "description": "patternProperties with null valued instance properties", 215 "schema": { 216 "$schema": "https://json-schema.org/draft/2019-09/schema", 217 "patternProperties": { 218 "^.*bar$": { 219 "type": "null" 220 } 221 } 222 }, 223 "tests": [ 224 { 225 "description": "allows null values", 226 "data": { 227 "foobar": null 228 }, 229 "valid": true 230 } 231 ] 232 } 233 ]