Files
libopenapi/index/extract_refs_test.go
Dave Shanley 6d384b2732 updated: a fix for #50
properties are now checked as part of the inline schemas. paths updated also to ensure correctness.
2023-02-27 11:05:18 -05:00

65 lines
1.6 KiB
Go

// Copyright 2023 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package index
import (
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
"testing"
)
func TestSpecIndex_ExtractRefs_CheckDescriptionNotMap(t *testing.T) {
yml := `openapi: 3.1.0
info:
description: This is a description
paths:
/herbs/and/spice:
get:
description: This is a also a description
responses:
200:
content:
application/json:
schema:
type: array
properties:
description:
type: string
`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(yml), &rootNode)
c := CreateOpenAPIIndexConfig()
idx := NewSpecIndexWithConfig(&rootNode, c)
assert.Len(t, idx.allDescriptions, 2)
assert.Equal(t, 2, idx.descriptionCount)
}
func TestSpecIndex_ExtractRefs_CheckPropertiesForInlineSchema(t *testing.T) {
yml := `openapi: 3.1.0
servers:
- url: http://localhost:8080
paths:
/test:
get:
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
test:
type: array
items: true
`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(yml), &rootNode)
c := CreateOpenAPIIndexConfig()
idx := NewSpecIndexWithConfig(&rootNode, c)
assert.Len(t, idx.allInlineSchemaDefinitions, 2)
assert.Len(t, idx.allInlineSchemaObjectDefinitions, 1)
}