diff options
Diffstat (limited to 'json/tests/draft2019-09/id.json')
-rw-r--r-- | json/tests/draft2019-09/id.json | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/json/tests/draft2019-09/id.json b/json/tests/draft2019-09/id.json index cd97d59..1fd3417 100644 --- a/json/tests/draft2019-09/id.json +++ b/json/tests/draft2019-09/id.json @@ -202,5 +202,55 @@ "valid": true } ] + }, + { + "description": "$id inside an enum is not a real identifier", + "comment": "the implementation must not be confused by an $id buried in the enum", + "schema": { + "$defs": { + "id_in_enum": { + "enum": [ + { + "$id": "https://localhost:1234/my_identifier.json", + "type": "null" + } + ] + }, + "real_id_in_schema": { + "$id": "https://localhost:1234/my_identifier.json", + "type": "string" + }, + "zzz_id_in_const": { + "const": { + "$id": "https://localhost:1234/my_identifier.json", + "type": "null" + } + } + }, + "anyOf": [ + { "$ref": "#/$defs/id_in_enum" }, + { "$ref": "https://localhost:1234/my_identifier.json" } + ] + }, + "tests": [ + { + "description": "exact match to enum, and type matches", + "data": { + "$id": "https://localhost:1234/my_identifier.json", + "type": "null" + }, + "valid": true + }, + { + "description": "match $ref to $id", + "data": "a string to match #/$defs/id_in_enum", + "valid": true + }, + { + "description": "no match on enum or $ref to $id", + "data": 1, + "valid": false + } + ] } ] |