quobix
2024-04-21 08:55:43 -04:00
parent ac4b6ecd31
commit 1e22e0233b
2 changed files with 23 additions and 1 deletions

View File

@@ -216,7 +216,7 @@ func (index *SpecIndex) ExtractRefs(node, parent *yaml.Node, seenPath []string,
continue continue
} }
// issue #481, don't look at refs in arrays, the next node isn't the value. // issue #481, don't look at refs in arrays, the next node isn't the value.
if utils.IsNodeArray(node) { if utils.IsNodeArray(node) {
continue continue
} }
} }
@@ -444,6 +444,9 @@ func (index *SpecIndex) ExtractRefs(node, parent *yaml.Node, seenPath []string,
if utils.IsNodeArray(node) { if utils.IsNodeArray(node) {
continue continue
} }
if slices.Contains(seenPath, "example") || slices.Contains(seenPath, "examples") {
continue
}
ref := &DescriptionReference{ ref := &DescriptionReference{
ParentNode: parent, ParentNode: parent,
@@ -462,6 +465,10 @@ func (index *SpecIndex) ExtractRefs(node, parent *yaml.Node, seenPath []string,
if n.Value == "summary" { if n.Value == "summary" {
if slices.Contains(seenPath, "example") || slices.Contains(seenPath, "examples") {
continue
}
var b *yaml.Node var b *yaml.Node
if len(node.Content) == i+1 { if len(node.Content) == i+1 {
b = node.Content[i] b = node.Content[i]

View File

@@ -1701,3 +1701,18 @@ components:
schemas := index.GetAllSchemas() schemas := index.GetAllSchemas()
assert.Equal(t, 6, len(schemas)) assert.Equal(t, 6, len(schemas))
} }
func TestSpecIndex_CheckIgnoreDescriptionsInExamples(t *testing.T) {
yml := `openapi: 3.1.0
components:
examples:
example1:
description: this should be ignored`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(yml), &rootNode)
index := NewSpecIndexWithConfig(&rootNode, CreateOpenAPIIndexConfig())
schemas := index.GetAllDescriptions()
assert.Equal(t, 0, len(schemas))
}