Open kroc702 opened 9 months ago
Note that order is important: if input value is 'a', it's working as expected
input value: {
"a": 1
}
schema: {
"anyOf": [... same as above ... ]
}
value is valid
output value: {
"a": 1,
"aDefault": 1
}
With oneOf
input value: {
"a": 1
}
schema: {
"oneOf": [... same as above ... ]
}
value is valid
output value: {
"a": 1,
"aDefault": 1,
"bDefault": 2
}
valid but "bDefault" shouldn't be populated.
With oneOf, different order
input value: {
"b": 2
}
schema: {
"oneOf": [... same as above ...]
}
The property aDefault is not defined and the definition does not allow additional properties
/aThe property a is required
The property b is not defined and the definition does not allow additional properties
Failed to match exactly one schema
output value: {
"b": 2,
"aDefault": 1,
"bDefault": 2
}
result should be valid and { "b": 2, "bDefault": 2}
@kroc702 thanks for the extensive information. I’ll see what I can find from te above or did you already did some debugging and perhaps and close to a PR?
One question I still have is which version of this library are you using? As that would be very informative in the context of this bug.
I forget to mention version:
"name": "justinrainbow/json-schema",
"version": "v5.2.13",
"source": {
"type": "git",
"url": "https://github.com/justinrainbow/json-schema.git",
"reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
},
And no I didn't debug this code yet. I'll add info here if I take the time to do it.
Hello, When mixing several objects with anyOf or oneOf, default values may be wrongly applied and interfere the validation. Cf attached file for a simple use case that where used. testSchemaValidator.zip
Here a first output example:
result should be valid and { "b": 2, "bDefault": 2}