mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 04:20:11 +00:00
fix: tests
This commit is contained in:
@@ -676,6 +676,9 @@ func ExtractMapExtensions[PT Buildable[N], N any](
|
|||||||
continue // yo, don't pay any attention to extensions, not here anyway.
|
continue // yo, don't pay any attention to extensions, not here anyway.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if currentLabelNode == nil && i%2 != 0 {
|
||||||
|
continue // we need a label node first, and we don't have one because of extensions.
|
||||||
|
}
|
||||||
|
|
||||||
en = utils.NodeAlias(en)
|
en = utils.NodeAlias(en)
|
||||||
if i%2 == 0 {
|
if i%2 == 0 {
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ func (r Reference) IsReference() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r Reference) GetReferenceNode() *yaml.Node {
|
func (r Reference) GetReferenceNode() *yaml.Node {
|
||||||
|
if r.IsReference() && r.refNode == nil {
|
||||||
|
return utils.CreateRefNode(r.reference)
|
||||||
|
}
|
||||||
|
|
||||||
return r.refNode
|
return r.refNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ package index
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/pb33f/libopenapi/utils"
|
|
||||||
"golang.org/x/sync/syncmap"
|
|
||||||
"log"
|
"log"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -19,12 +17,14 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/pb33f/libopenapi/utils"
|
||||||
|
"golang.org/x/sync/syncmap"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSpecIndex_GetCache(t *testing.T) {
|
func TestSpecIndex_GetCache(t *testing.T) {
|
||||||
|
|
||||||
petstore, _ := os.ReadFile("../test_specs/petstorev3.json")
|
petstore, _ := os.ReadFile("../test_specs/petstorev3.json")
|
||||||
var rootNode yaml.Node
|
var rootNode yaml.Node
|
||||||
_ = yaml.Unmarshal(petstore, &rootNode)
|
_ = yaml.Unmarshal(petstore, &rootNode)
|
||||||
@@ -55,7 +55,6 @@ func TestSpecIndex_GetCache(t *testing.T) {
|
|||||||
loaded, ok = extCache.Load("test2")
|
loaded, ok = extCache.Load("test2")
|
||||||
assert.Nil(t, loaded)
|
assert.Nil(t, loaded)
|
||||||
assert.False(t, ok)
|
assert.False(t, ok)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_ExtractRefsStripe(t *testing.T) {
|
func TestSpecIndex_ExtractRefsStripe(t *testing.T) {
|
||||||
@@ -188,7 +187,6 @@ func TestSpecIndex_DigitalOcean(t *testing.T) {
|
|||||||
rolo.CheckForCircularReferences()
|
rolo.CheckForCircularReferences()
|
||||||
assert.Len(t, rolo.GetCaughtErrors(), 0)
|
assert.Len(t, rolo.GetCaughtErrors(), 0)
|
||||||
assert.Len(t, rolo.GetIgnoredCircularReferences(), 0)
|
assert.Len(t, rolo.GetIgnoredCircularReferences(), 0)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve(t *testing.T) {
|
func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve(t *testing.T) {
|
||||||
@@ -263,7 +261,6 @@ func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve(t *testing.T) {
|
|||||||
assert.Equal(t, int64(1330184), rolo.RolodexFileSize())
|
assert.Equal(t, int64(1330184), rolo.RolodexFileSize())
|
||||||
assert.Equal(t, "1.27 MB", rolo.RolodexFileSizeAsString())
|
assert.Equal(t, "1.27 MB", rolo.RolodexFileSizeAsString())
|
||||||
assert.Equal(t, 1696, rolo.RolodexTotalFiles())
|
assert.Equal(t, 1696, rolo.RolodexTotalFiles())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve_RecursiveLookup(t *testing.T) {
|
func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve_RecursiveLookup(t *testing.T) {
|
||||||
@@ -337,7 +334,6 @@ func TestSpecIndex_DigitalOcean_FullCheckoutLocalResolve_RecursiveLookup(t *test
|
|||||||
assert.Equal(t, int64(1270079), rolo.RolodexFileSize())
|
assert.Equal(t, int64(1270079), rolo.RolodexFileSize())
|
||||||
assert.Equal(t, "1.21 MB", rolo.RolodexFileSizeAsString())
|
assert.Equal(t, "1.21 MB", rolo.RolodexFileSizeAsString())
|
||||||
assert.Equal(t, 1682, rolo.RolodexTotalFiles())
|
assert.Equal(t, 1682, rolo.RolodexTotalFiles())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_DigitalOcean_LookupsNotAllowed(t *testing.T) {
|
func TestSpecIndex_DigitalOcean_LookupsNotAllowed(t *testing.T) {
|
||||||
@@ -390,7 +386,6 @@ func TestSpecIndex_DigitalOcean_LookupsNotAllowed(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_BaseURLError(t *testing.T) {
|
func TestSpecIndex_BaseURLError(t *testing.T) {
|
||||||
|
|
||||||
do, _ := os.ReadFile("../test_specs/digitalocean.yaml")
|
do, _ := os.ReadFile("../test_specs/digitalocean.yaml")
|
||||||
var rootNode yaml.Node
|
var rootNode yaml.Node
|
||||||
_ = yaml.Unmarshal(do, &rootNode)
|
_ = yaml.Unmarshal(do, &rootNode)
|
||||||
@@ -433,7 +428,6 @@ func TestSpecIndex_BaseURLError(t *testing.T) {
|
|||||||
fileLen := len(files)
|
fileLen := len(files)
|
||||||
assert.Equal(t, 0, fileLen)
|
assert.Equal(t, 0, fileLen)
|
||||||
assert.GreaterOrEqual(t, len(remoteFS.GetErrors()), 200)
|
assert.GreaterOrEqual(t, len(remoteFS.GetErrors()), 200)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_k8s(t *testing.T) {
|
func TestSpecIndex_k8s(t *testing.T) {
|
||||||
@@ -530,7 +524,6 @@ func TestSpecIndex_PetstoreV3(t *testing.T) {
|
|||||||
|
|
||||||
index.SetAbsolutePath("/rooty/rootster")
|
index.SetAbsolutePath("/rooty/rootster")
|
||||||
assert.Equal(t, "/rooty/rootster", index.GetSpecAbsolutePath())
|
assert.Equal(t, "/rooty/rootster", index.GetSpecAbsolutePath())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var mappedRefs = 15
|
var mappedRefs = 15
|
||||||
@@ -703,17 +696,14 @@ func TestSpecIndex_NoRoot(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func test_buildMixedRefServer() *httptest.Server {
|
func test_buildMixedRefServer() *httptest.Server {
|
||||||
|
|
||||||
bs, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
|
bs, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
|
||||||
return httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
return httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||||
rw.Header().Set("Last-Modified", "Wed, 21 Oct 2015 07:28:00 GMT")
|
rw.Header().Set("Last-Modified", "Wed, 21 Oct 2015 07:28:00 GMT")
|
||||||
_, _ = rw.Write(bs)
|
_, _ = rw.Write(bs)
|
||||||
|
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_BurgerShopMixedRef(t *testing.T) {
|
func TestSpecIndex_BurgerShopMixedRef(t *testing.T) {
|
||||||
|
|
||||||
// create a test server.
|
// create a test server.
|
||||||
server := test_buildMixedRefServer()
|
server := test_buildMixedRefServer()
|
||||||
defer server.Close()
|
defer server.Close()
|
||||||
@@ -793,10 +783,9 @@ func TestSpecIndex_BurgerShopMixedRef(t *testing.T) {
|
|||||||
assert.Len(t, index.GetCircularReferences(), 0)
|
assert.Len(t, index.GetCircularReferences(), 0)
|
||||||
|
|
||||||
// get the size of the rolodex.
|
// get the size of the rolodex.
|
||||||
assert.Equal(t, int64(60232), rolo.RolodexFileSize()+int64(len(yml)))
|
assert.Equal(t, int64(60226), rolo.RolodexFileSize()+int64(len(yml)))
|
||||||
assert.Equal(t, "50.48 KB", rolo.RolodexFileSizeAsString())
|
assert.Equal(t, "50.48 KB", rolo.RolodexFileSizeAsString())
|
||||||
assert.Equal(t, 3, rolo.RolodexTotalFiles())
|
assert.Equal(t, 3, rolo.RolodexTotalFiles())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCalcSizeAsString(t *testing.T) {
|
func TestCalcSizeAsString(t *testing.T) {
|
||||||
@@ -1046,7 +1035,6 @@ paths:
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_lookupFileReference_MultiRes(t *testing.T) {
|
func TestSpecIndex_lookupFileReference_MultiRes(t *testing.T) {
|
||||||
|
|
||||||
embie := []byte("naughty:\n - puppy: dog\n - puppy: naughty\npuppy:\n - naughty: puppy")
|
embie := []byte("naughty:\n - puppy: dog\n - puppy: naughty\npuppy:\n - naughty: puppy")
|
||||||
|
|
||||||
_ = os.WriteFile("embie.yaml", embie, 0o664)
|
_ = os.WriteFile("embie.yaml", embie, 0o664)
|
||||||
@@ -1089,15 +1077,13 @@ func TestSpecIndex_lookupFileReference_MultiRes(t *testing.T) {
|
|||||||
assert.NotNil(t, embieRoloFile)
|
assert.NotNil(t, embieRoloFile)
|
||||||
|
|
||||||
index := rolo.GetRootIndex()
|
index := rolo.GetRootIndex()
|
||||||
//index.seenRemoteSources = make(map[string]*yaml.Node)
|
// index.seenRemoteSources = make(map[string]*yaml.Node)
|
||||||
absoluteRef, _ := filepath.Abs("embie.yaml#/naughty")
|
absoluteRef, _ := filepath.Abs("embie.yaml#/naughty")
|
||||||
fRef, _ := index.SearchIndexForReference(absoluteRef)
|
fRef, _ := index.SearchIndexForReference(absoluteRef)
|
||||||
assert.NotNil(t, fRef)
|
assert.NotNil(t, fRef)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_lookupFileReference(t *testing.T) {
|
func TestSpecIndex_lookupFileReference(t *testing.T) {
|
||||||
|
|
||||||
pup := []byte("good:\n - puppy: dog\n - puppy: forever-more")
|
pup := []byte("good:\n - puppy: dog\n - puppy: forever-more")
|
||||||
|
|
||||||
var myPuppy yaml.Node
|
var myPuppy yaml.Node
|
||||||
@@ -1138,11 +1124,9 @@ func TestSpecIndex_lookupFileReference(t *testing.T) {
|
|||||||
assert.NoError(t, fErr)
|
assert.NoError(t, fErr)
|
||||||
assert.Equal(t, "fox.yaml", fox.Name())
|
assert.Equal(t, "fox.yaml", fox.Name())
|
||||||
assert.Equal(t, "good:\n - puppy: dog\n - puppy: forever-more", string(fox.GetContent()))
|
assert.Equal(t, "good:\n - puppy: dog\n - puppy: forever-more", string(fox.GetContent()))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSpecIndex_parameterReferencesHavePaths(t *testing.T) {
|
func TestSpecIndex_parameterReferencesHavePaths(t *testing.T) {
|
||||||
|
|
||||||
_ = os.WriteFile("paramour.yaml", []byte(`components:
|
_ = os.WriteFile("paramour.yaml", []byte(`components:
|
||||||
parameters:
|
parameters:
|
||||||
param3:
|
param3:
|
||||||
|
|||||||
Reference in New Issue
Block a user