Skip to content

Commit 9569c25

Browse files
committed
added a negative case for libopenapi issue
pb33f/libopenapi#415
1 parent 587e832 commit 9569c25

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

schema_validation/validate_schema_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,3 +730,53 @@ paths:
730730
assert.True(t, valid)
731731
assert.Empty(t, errors)
732732
}
733+
734+
// https://github.com/pb33f/libopenapi/issues/415
735+
func TestValidateSchema_v3_1_DependentSchemas_NotValid(t *testing.T) {
736+
spec := `openapi: 3.1.0
737+
paths:
738+
/burgers/createBurger:
739+
post:
740+
requestBody:
741+
content:
742+
application/json:
743+
schema:
744+
type: object
745+
properties:
746+
fishCake:
747+
type: object
748+
properties:
749+
bones:
750+
type: boolean
751+
dependentSchemas:
752+
fishCake:
753+
type: object
754+
properties:
755+
cream:
756+
type: number
757+
format: double
758+
required:
759+
- cream`
760+
761+
doc, _ := libopenapi.NewDocument([]byte(spec))
762+
763+
m, _ := doc.BuildV3Model()
764+
765+
exp := `{
766+
"fishCake": {
767+
"bones": true,
768+
}
769+
"cream": 2.5
770+
}`
771+
772+
sch := m.Model.Paths.PathItems.GetOrZero("/burgers/createBurger").Post.RequestBody.Content.GetOrZero("application/json").Schema
773+
774+
// create a schema validator
775+
v := NewSchemaValidator()
776+
777+
// validate!
778+
valid, errors := v.ValidateSchemaString(sch.Schema(), exp)
779+
780+
assert.False(t, valid)
781+
assert.NotEmpty(t, errors)
782+
}

0 commit comments

Comments
 (0)