@@ -205,7 +205,7 @@ def test_discriminator_specification_example
205
205
assert_equal ( [ [ 'enum' , '/components/schemas/Cat/allOf/1/properties/huntingSkill' ] ] , schemer . validate ( invalid_hunting_skill ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
206
206
assert_equal ( [ [ 'required' , '/components/schemas/Dog/allOf/1' ] ] , schemer . validate ( missing_pack_size ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
207
207
assert_equal ( [ [ 'format' , '/components/schemas/Dog/allOf/1/properties/packSize' ] ] , schemer . validate ( invalid_pack_size ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
208
- assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] ] , schemer . validate ( missing_pet_type ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
208
+ assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] , [ 'discriminator' , '/components/schemas/Pet' ] ] , schemer . validate ( missing_pet_type ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
209
209
assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] , [ 'required' , '/components/schemas/Cat/allOf/1' ] ] , schemer . validate ( missing_name ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
210
210
assert_raises ( JSONSchemer ::UnknownRef ) { schemer . validate ( invalid_pet_type ) }
211
211
end
@@ -404,7 +404,7 @@ def test_all_of_discriminator_subclass_schemas_work_on_their_own
404
404
assert ( schemer . valid? ( CAT ) )
405
405
assert ( schemer . valid? ( MISTY ) )
406
406
assert_equal ( [ '/components/schemas/Cat/allOf/1/properties/name' ] , schemer . validate ( INVALID_CAT ) . map { |error | error . fetch ( 'schema_pointer' ) } )
407
- assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] ] , schemer . validate ( { } ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
407
+ assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] , [ 'discriminator' , '/components/schemas/Pet' ] ] , schemer . validate ( { } ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
408
408
end
409
409
410
410
def test_all_of_discriminator_with_non_discriminator_ref
@@ -444,7 +444,7 @@ def test_all_of_discriminator_with_non_discriminator_ref
444
444
refute ( schemer . valid? ( CAT ) )
445
445
assert ( schemer . valid? ( CAT . merge ( 'other' => 'y' ) ) )
446
446
assert_equal ( [ '/components/schemas/Other' , '/components/schemas/Cat/allOf/2/properties/name' ] , schemer . validate ( INVALID_CAT ) . map { |error | error . fetch ( 'schema_pointer' ) } )
447
- assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] , [ 'required' , '/components/schemas/Other' ] ] , schemer . validate ( { } ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
447
+ assert_equal ( [ [ 'required' , '/components/schemas/Pet' ] , [ 'discriminator' , '/components/schemas/Pet' ] , [ ' required', '/components/schemas/Other' ] ] , schemer . validate ( { } ) . map { |error | error . values_at ( 'type' , 'schema_pointer' ) } )
448
448
end
449
449
450
450
def test_any_of_discriminator_without_matching_schema
@@ -597,7 +597,7 @@ def test_non_json_pointer_discriminator
597
597
def test_discriminator_non_object_and_missing_property_name
598
598
schemer = JSONSchemer . schema ( { 'discriminator' => { 'propertyName' => 'x' } } , :meta_schema => JSONSchemer . openapi31 )
599
599
assert ( schemer . valid? ( 1 ) )
600
- assert ( schemer . valid? ( { 'y' => 'z' } ) )
600
+ refute ( schemer . valid? ( { 'y' => 'z' } ) )
601
601
end
602
602
603
603
def test_openapi31_formats
0 commit comments