-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Labels
Description
In the following example, we combine "$ref" with another key, here "properties".
Expected result: Validation returns "false" as modelVersion.major is > 2.
Observed result: Validation returns "true"
local schema = [[
{
"type": "object",
"$defs": {
"version": {
"type": "object",
"properties": {
"major": {
"type": "integer",
"minimum": 0
},
"minor": {
"type": "integer",
"minimum": 0
},
"patch": {
"type": "integer",
"minimum": 0
}
},
"required": [
"major",
"minor",
"patch"
]
}
},
"properties": {
"modelVersion": {
"$ref": "#/$defs/version",
"properties": {
"major": {
"type": "integer",
"minimum": 0,
"maximum": 1
},
"minor": {
"type": "integer",
"minimum": 0
},
"patch": {
"type": "integer",
"minimum": 0
}
}
}
}
}
]]
local v = JsonSchema.generate_validator(Json.decode(schema), {match_pattern = function () end})
print(v(Json.decode([[
{
"modelVersion": {"major": 2, "minor": 2, "patch": 0}
}
]])))