From 2ce0b5a87bcadee5e4633c52ad44f75f42fa3263 Mon Sep 17 00:00:00 2001 From: nk2ge5k Date: Tue, 8 Nov 2022 00:15:01 +0400 Subject: [PATCH] reproduce issue #652 --- openapi3/issue652_test.go | 29 ++++++++++++++++++++ openapi3/testdata/issue652/definitions.yml | 4 +++ openapi3/testdata/issue652/nested/schema.yml | 4 +++ 3 files changed, 37 insertions(+) create mode 100644 openapi3/issue652_test.go create mode 100644 openapi3/testdata/issue652/definitions.yml create mode 100644 openapi3/testdata/issue652/nested/schema.yml diff --git a/openapi3/issue652_test.go b/openapi3/issue652_test.go new file mode 100644 index 000000000..f36e92005 --- /dev/null +++ b/openapi3/issue652_test.go @@ -0,0 +1,29 @@ +package openapi3_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/getkin/kin-openapi/openapi3" +) + +func TestIssue652(t *testing.T) { + loader := openapi3.NewLoader() + loader.IsExternalRefsAllowed = true + + // Test checks that no slice bounds out of range error occurs while loading + // from file that contains reference to file in the parent directory. + require.NotPanics(t, func() { + const schemaName = "ReferenceToParentDirectory" + + spec, err := loader.LoadFromFile("testdata/issue652/nested/schema.yml") + require.NoError(t, err) + require.Contains(t, spec.Components.Schemas, schemaName) + + schema := spec.Components.Schemas[schemaName] + assert.Equal(t, schema.Ref, "../definitions.yml#/components/schemas/TestSchema") + assert.Equal(t, schema.Value.Type, "string") + }) +} diff --git a/openapi3/testdata/issue652/definitions.yml b/openapi3/testdata/issue652/definitions.yml new file mode 100644 index 000000000..98ef69254 --- /dev/null +++ b/openapi3/testdata/issue652/definitions.yml @@ -0,0 +1,4 @@ +components: + schemas: + TestSchema: + type: string diff --git a/openapi3/testdata/issue652/nested/schema.yml b/openapi3/testdata/issue652/nested/schema.yml new file mode 100644 index 000000000..ef321a101 --- /dev/null +++ b/openapi3/testdata/issue652/nested/schema.yml @@ -0,0 +1,4 @@ +components: + schemas: + ReferenceToParentDirectory: + $ref: "../definitions.yml#/components/schemas/TestSchema"