Skip to content

Commit

Permalink
Add false schema errors for unevaluated keywords
Browse files Browse the repository at this point in the history
And change `additionalProperties` message to be consistent.
  • Loading branch information
davishmcclurg committed Feb 25, 2024
1 parent 094362a commit e8750cf
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 1 addition & 1 deletion lib/json_schemer/draft202012/vocab/applicator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ def error(formatted_instance_location:, **)
end

def false_schema_error(formatted_instance_location:, **)
"object property at #{formatted_instance_location} is not defined and schema does not allow additional properties"
"object property at #{formatted_instance_location} is a disallowed additional property"
end

def parse
Expand Down
8 changes: 8 additions & 0 deletions lib/json_schemer/draft202012/vocab/unevaluated.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ def error(formatted_instance_location:, **)
"array items at #{formatted_instance_location} do not match `unevaluatedItems` schema"
end

def false_schema_error(formatted_instance_location:, **)
"array item at #{formatted_instance_location} is a disallowed unevaluated item"
end

def parse
subschema(value)
end
Expand Down Expand Up @@ -52,6 +56,10 @@ def error(formatted_instance_location:, **)
"object properties at #{formatted_instance_location} do not match `unevaluatedProperties` schema"
end

def false_schema_error(formatted_instance_location:, **)
"object property at #{formatted_instance_location} is a disallowed unevaluated property"
end

def parse
subschema(value)
end
Expand Down
4 changes: 2 additions & 2 deletions test/output_format_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_output_formats_match_specification_examples
'keywordLocation' => '/items/$ref/additionalProperties',
'absoluteKeywordLocation' => 'https://example.com/polygon#/$defs/point/additionalProperties',
'instanceLocation' => '/1/z',
'error' => 'object property at `/1/z` is not defined and schema does not allow additional properties' # 'Additional property \'z\' found but was invalid.'
'error' => 'object property at `/1/z` is a disallowed additional property' # 'Additional property \'z\' found but was invalid.'
},
{
'valid' => false, # not in spec
Expand Down Expand Up @@ -107,7 +107,7 @@ def test_output_formats_match_specification_examples
'keywordLocation' => '/items/$ref/additionalProperties',
'absoluteKeywordLocation' => 'https://example.com/polygon#/$defs/point/additionalProperties',
'instanceLocation' => '/1/z',
'error' => 'object property at `/1/z` is not defined and schema does not allow additional properties' # 'Additional property \'z\' found but was invalid.'
'error' => 'object property at `/1/z` is a disallowed additional property' # 'Additional property \'z\' found but was invalid.'
},
{
'valid' => false,
Expand Down

0 comments on commit e8750cf

Please sign in to comment.