File: all_of_ref_schema_test.rb

package info (click to toggle)
ruby-json-schema 2.8.1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 896 kB
  • sloc: ruby: 5,806; makefile: 6
file content (35 lines) | stat: -rw-r--r-- 1,189 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require File.expand_path('../support/test_helper', __FILE__)

class AllOfRefSchemaTest < Minitest::Test
  def schema
    schema_fixture_path('all_of_ref_schema.json')
  end

  def data
    data_fixture_path('all_of_ref_data.json')
  end

  def test_all_of_ref_schema_fails
    refute_valid schema, data
  end

  def test_all_of_ref_schema_succeeds
    assert_valid schema, %({"name": 42})
  end

  def test_all_of_ref_subschema_errors
    errors = JSON::Validator.fully_validate(schema, data, :errors_as_objects => true)
    nested_errors = errors[0][:errors]
    assert_equal([:allof_0], nested_errors.keys, 'should have nested errors for each allOf subschema')
    assert_match(/the property '#\/name' of type string did not match the following type: integer/i, nested_errors[:allof_0][0][:message])
  end

  def test_all_of_ref_message
    errors = JSON::Validator.fully_validate(schema, data)
    expected_message = """The property '#/' of type object did not match all of the required schemas. The schema specific errors were:

- allOf #0:
    - The property '#/name' of type string did not match the following type: integer"""
    assert_equal(expected_message, errors[0])
  end
end