mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 04:20:11 +00:00
Improved code coverage and fixed nil error when copying references
This commit is contained in:
@@ -436,6 +436,9 @@ func (r *Rolodex) BuildIndexes() {
|
|||||||
func (r *Rolodex) GetAllReferences() map[string]*Reference {
|
func (r *Rolodex) GetAllReferences() map[string]*Reference {
|
||||||
allRefs := make(map[string]*Reference)
|
allRefs := make(map[string]*Reference)
|
||||||
for _, idx := range append(r.GetIndexes(), r.GetRootIndex()) {
|
for _, idx := range append(r.GetIndexes(), r.GetRootIndex()) {
|
||||||
|
if idx == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
refs := idx.GetAllReferences()
|
refs := idx.GetAllReferences()
|
||||||
maps.Copy(allRefs, refs)
|
maps.Copy(allRefs, refs)
|
||||||
}
|
}
|
||||||
@@ -446,6 +449,9 @@ func (r *Rolodex) GetAllReferences() map[string]*Reference {
|
|||||||
func (r *Rolodex) GetAllMappedReferences() map[string]*Reference {
|
func (r *Rolodex) GetAllMappedReferences() map[string]*Reference {
|
||||||
mappedRefs := make(map[string]*Reference)
|
mappedRefs := make(map[string]*Reference)
|
||||||
for _, idx := range append(r.GetIndexes(), r.GetRootIndex()) {
|
for _, idx := range append(r.GetIndexes(), r.GetRootIndex()) {
|
||||||
|
if idx == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
refs := idx.GetMappedReferences()
|
refs := idx.GetMappedReferences()
|
||||||
maps.Copy(mappedRefs, refs)
|
maps.Copy(mappedRefs, refs)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import (
|
|||||||
func TestRolodex_NewRolodex(t *testing.T) {
|
func TestRolodex_NewRolodex(t *testing.T) {
|
||||||
c := CreateOpenAPIIndexConfig()
|
c := CreateOpenAPIIndexConfig()
|
||||||
rolo := NewRolodex(c)
|
rolo := NewRolodex(c)
|
||||||
|
assert.Len(t, rolo.GetAllReferences(), 0)
|
||||||
|
assert.Len(t, rolo.GetAllMappedReferences(), 0)
|
||||||
assert.NotNil(t, rolo)
|
assert.NotNil(t, rolo)
|
||||||
assert.NotNil(t, rolo.indexConfig)
|
assert.NotNil(t, rolo.indexConfig)
|
||||||
assert.Nil(t, rolo.GetIgnoredCircularReferences())
|
assert.Nil(t, rolo.GetIgnoredCircularReferences())
|
||||||
@@ -1520,6 +1522,7 @@ func TestRolodex_SimpleTest_OneDoc(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cf := CreateOpenAPIIndexConfig()
|
cf := CreateOpenAPIIndexConfig()
|
||||||
|
cf.SpecFilePath = filepath.Join(baseDir, "doc1.yaml")
|
||||||
cf.BasePath = baseDir
|
cf.BasePath = baseDir
|
||||||
cf.IgnoreArrayCircularReferences = true
|
cf.IgnoreArrayCircularReferences = true
|
||||||
cf.IgnorePolymorphicCircularReferences = true
|
cf.IgnorePolymorphicCircularReferences = true
|
||||||
@@ -1527,11 +1530,19 @@ func TestRolodex_SimpleTest_OneDoc(t *testing.T) {
|
|||||||
rolo := NewRolodex(cf)
|
rolo := NewRolodex(cf)
|
||||||
rolo.AddLocalFS(baseDir, fileFS)
|
rolo.AddLocalFS(baseDir, fileFS)
|
||||||
|
|
||||||
|
rootBytes, err := os.ReadFile(cf.SpecFilePath)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
var rootNode yaml.Node
|
||||||
|
_ = yaml.Unmarshal(rootBytes, &rootNode)
|
||||||
|
rolo.SetRootNode(&rootNode)
|
||||||
|
|
||||||
err = rolo.IndexTheRolodex()
|
err = rolo.IndexTheRolodex()
|
||||||
|
|
||||||
//assert.NotZero(t, rolo.GetIndexingDuration()) comes back as 0 on windows.
|
//assert.NotZero(t, rolo.GetIndexingDuration()) comes back as 0 on windows.
|
||||||
assert.Nil(t, rolo.GetRootIndex())
|
assert.NotNil(t, rolo.GetRootIndex())
|
||||||
assert.Len(t, rolo.GetIndexes(), 10)
|
assert.Len(t, rolo.GetIndexes(), 10)
|
||||||
|
assert.Len(t, rolo.GetAllReferences(), 7)
|
||||||
|
assert.Len(t, rolo.GetAllMappedReferences(), 7)
|
||||||
|
|
||||||
lineCount := rolo.GetFullLineCount()
|
lineCount := rolo.GetFullLineCount()
|
||||||
assert.Equal(t, int64(158), lineCount, "total line count in the rolodex is wrong")
|
assert.Equal(t, int64(158), lineCount, "total line count in the rolodex is wrong")
|
||||||
|
|||||||
Reference in New Issue
Block a user