Files
libopenapi/datamodel/high/v3/oauth_flow_test.go
quobix 7afb1e9d11 Addressed #159
Cleaned up all interesting static checks. All that is left is cosmetics.

Signed-off-by: quobix <dave@quobix.com>
2024-02-06 22:13:41 -05:00

55 lines
1.3 KiB
Go

// Copyright 2023 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package v3
import (
"strings"
"testing"
"github.com/pb33f/libopenapi/orderedmap"
"github.com/pb33f/libopenapi/utils"
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
)
func TestOAuthFlow_MarshalYAML(t *testing.T) {
scopes := orderedmap.New[string, string]()
scopes.Set("chicken", "nuggets")
scopes.Set("beefy", "soup")
oflow := &OAuthFlow{
AuthorizationUrl: "https://pb33f.io",
TokenUrl: "https://pb33f.io/token",
RefreshUrl: "https://pb33f.io/refresh",
Scopes: scopes,
}
rend, _ := oflow.Render()
assert.NotNil(t, rend)
desired := `authorizationUrl: https://pb33f.io
tokenUrl: https://pb33f.io/token
refreshUrl: https://pb33f.io/refresh
scopes:
chicken: nuggets
beefy: soup`
// we can't check for equality, as the scopes map will be randomly ordered when created from scratch.
assert.Len(t, desired, 149)
// mutate
oflow.Scopes = nil
ext := orderedmap.New[string, *yaml.Node]()
ext.Set("x-burgers", utils.CreateStringNode("why not?"))
oflow.Extensions = ext
desired = `authorizationUrl: https://pb33f.io
tokenUrl: https://pb33f.io/token
refreshUrl: https://pb33f.io/refresh
x-burgers: why not?`
rend, _ = oflow.Render()
assert.Equal(t, desired, strings.TrimSpace(string(rend)))
}