mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 12:37:49 +00:00
Also ran `gofmt` across the entire project. Things need cleaning up. Signed-off-by: Dave Shanley <dave@quobix.com>
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
// Copyright 2023 Princess B33f Heavy Industries / Dave Shanley
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package v3
|
|
|
|
import (
|
|
"github.com/pb33f/libopenapi/datamodel/low"
|
|
v3 "github.com/pb33f/libopenapi/datamodel/low/v3"
|
|
"github.com/pb33f/libopenapi/index"
|
|
"github.com/stretchr/testify/assert"
|
|
"gopkg.in/yaml.v3"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestComponents_MarshalYAML(t *testing.T) {
|
|
|
|
comp := &Components{
|
|
Responses: map[string]*Response{
|
|
"200": {
|
|
Description: "OK",
|
|
},
|
|
},
|
|
Parameters: map[string]*Parameter{
|
|
"id": {
|
|
Name: "id",
|
|
In: "path",
|
|
},
|
|
},
|
|
RequestBodies: map[string]*RequestBody{
|
|
"body": {
|
|
Content: map[string]*MediaType{
|
|
"application/json": {
|
|
Example: "why?",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
dat, _ := comp.Render()
|
|
|
|
var idxNode yaml.Node
|
|
_ = yaml.Unmarshal(dat, &idxNode)
|
|
idx := index.NewSpecIndexWithConfig(&idxNode, index.CreateOpenAPIIndexConfig())
|
|
|
|
var n v3.Components
|
|
_ = low.BuildModel(idxNode.Content[0], &n)
|
|
_ = n.Build(idxNode.Content[0], idx)
|
|
|
|
r := NewComponents(&n)
|
|
|
|
desired := `responses:
|
|
"200":
|
|
description: OK
|
|
parameters:
|
|
id:
|
|
name: id
|
|
in: path
|
|
requestBodies:
|
|
body:
|
|
content:
|
|
application/json:
|
|
example: why?`
|
|
|
|
dat, _ = r.Render()
|
|
assert.Equal(t, desired, strings.TrimSpace(string(dat)))
|
|
}
|