[
{
"description": "allOf with false unevaluatedProperties",
"schema": {
"$schema": "https://json-schema.org/draft/2019-09/schema",
"unevaluatedProperties": false,
"allOf": [
{
"properties": {
"foo": { "type": ["string", "null"] },
"bar": { "type": ["string", "null"] }
}
},
{
"additionalProperties": {
"not": { "enum": [ null ] }
}
}
]
},
"tests": [
{
"description": "string props valid",
"data": { "bar": "foo", "bob": "who?" },
"valid": true
},
{
"description": "null prop is invalid",
"data": { "bar": "foo", "bob": null },
"valid": false
},
{
"description": "named property with wrong type is invalid",
"data": { "bar": "foo", "bob": "who?" },
"valid": true
}
]
},
{
"description": "complex unevaluated schema",
"schema": {
"$schema": "https://json-schema.org/draft/2019-09/schema",
"unevaluatedProperties": {
"allOf": [{"minLength": 3}, {"type": "string"}]
},
"if": {
"properties": {
"foo": {"type": "integer"},
"arr": {"type": "array"}
},
"required": ["foo"]
}
},
"tests": [
{
"description": "empty object",
"data": {},
"valid": true
},
{
"description": "if passes",
"data": {"foo": 3, "arr": [1,2]},
"valid": true
},
{
"description": "if passes with valid uneval",
"data": {"foo": 3, "arr": [1,2], "uneval": "long-string"},
"valid": true
},
{
"description": "if passes with invalid short uneval",
"data": {"foo": 3, "arr": [1,2], "uneval": "zz"},
"valid": false
},
{
"description": "if fails, and uneval fails because of array",
"data": {"foo": "not-an-int", "arr": [1,2], "uneval": "long-string"},
"valid": false
},
{
"description": "if fails with valid uneval",
"data": {"foo": "not-an-int", "uneval": "long-string"},
"valid": true
},
{
"description": "if fails with invalid uneval",
"data": {"foo": "zz", "uneval": "long-string"},
"valid": false
}
]
}
]