Skip to content

OneOf validation gives unnecessary errors #535

@ksychla

Description

@ksychla

Let's say we have a schema like this one:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://example.com/product.schema.json",
  "title": "",
  "description": "",
  "type": "object",
  "properties": {
    "mainprop": {
      "type": "object",
      "oneOf": [
        {
          "required": [
            "property1"
          ],
          "properties": {
            "property1": {
              "enum": [
                "AAA",
                "BBB",
                "CCC"
              ],
              "type": "string"
            }
          }
        },
        {
          "required": [
            "property2"
          ],
          "properties": {
            "property2": {
              "type": "number"
            }
          }
        }
      ]
    }
  },
  "required": [ "mainprop" ]
}

So we have one oneOf property that requires either property1 or property2.

{
  "mainprop": {
    "property1": "INVALID"
  }
}

This json is incorrect and the validator should return error that the value of property1 is incorrect, but in addition to that it returns an error that property2 is required and missing:

$.mainprop.property1: does not have a value in the enumeration [AAA, BBB, CCC]
$.mainprop.property2: is missing but it is required

It's not correct, because property1 is already present, just incorrect. So the error that property2 is required is unnecessary/incorrect.

I have a fix for that, just have to submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions