Files
libopenapi/datamodel/low/v2/security_scheme_test.go
Dave Shanley 9c3c935530 v2 and v3 security scheme is now in place for what changed
full converage for security, with confidence.
2022-11-18 11:00:34 -05:00

53 lines
1.1 KiB
Go

// Copyright 2022 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package v2
import (
"github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/index"
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
"testing"
)
func TestSecurityScheme_Build_Borked(t *testing.T) {
yml := `scopes:
$ref: break`
var idxNode yaml.Node
mErr := yaml.Unmarshal([]byte(yml), &idxNode)
assert.NoError(t, mErr)
idx := index.NewSpecIndex(&idxNode)
var n SecurityScheme
err := low.BuildModel(&idxNode, &n)
assert.NoError(t, err)
err = n.Build(idxNode.Content[0], idx)
assert.Error(t, err)
}
func TestSecurityScheme_Build_Scopes(t *testing.T) {
yml := `scopes:
some:thing: here
something: there`
var idxNode yaml.Node
mErr := yaml.Unmarshal([]byte(yml), &idxNode)
assert.NoError(t, mErr)
idx := index.NewSpecIndex(&idxNode)
var n SecurityScheme
err := low.BuildModel(&idxNode, &n)
assert.NoError(t, err)
err = n.Build(idxNode.Content[0], idx)
assert.NoError(t, err)
assert.Len(t, n.Scopes.Value.Values, 2)
}