bumping coverage on utility methods in index.

Signed-off-by: quobix <dave@quobix.com>
This commit is contained in:
quobix
2023-11-01 10:00:01 -04:00
parent 701c77e1bf
commit 720a86cda7
2 changed files with 61 additions and 42 deletions

View File

@@ -124,61 +124,23 @@ func extractRequiredReferenceProperties(fulldef string, requiredPropDefNode *yam
if !strings.HasPrefix(exp[0], "http") {
if !filepath.IsAbs(exp[0]) {
if strings.HasPrefix(fulldef, "http") {
u, _ := url.Parse(fulldef)
p := filepath.Dir(u.Path)
abs, _ := filepath.Abs(filepath.Join(p, exp[0]))
u.Path = abs
defPath = fmt.Sprintf("%s#/%s", u.String(), exp[1])
} else {
abs, _ := filepath.Abs(filepath.Join(filepath.Dir(fulldef), exp[0]))
defPath = fmt.Sprintf("%s#/%s", abs, exp[1])
}
abs, _ := filepath.Abs(filepath.Join(filepath.Dir(fulldef), exp[0]))
defPath = fmt.Sprintf("%s#/%s", abs, exp[1])
}
}
}
} else {
if strings.HasPrefix(exp[0], "http") {
defPath = exp[0]
} else {
// file shit again
if filepath.IsAbs(exp[0]) {
defPath = exp[0]
} else {
// check full def and decide what to do next.
if strings.HasPrefix(fulldef, "http") {
u, _ := url.Parse(fulldef)
p := filepath.Dir(u.Path)
abs, _ := filepath.Abs(filepath.Join(p, exp[0]))
u.Path = abs
defPath = u.String()
} else {
defPath, _ = filepath.Abs(filepath.Join(filepath.Dir(fulldef), exp[0]))
}
defPath, _ = filepath.Abs(filepath.Join(filepath.Dir(fulldef), exp[0]))
}
}
}
if _, ok := reqRefProps[defPath]; !ok {

View File

@@ -5,6 +5,7 @@ package index
import (
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
"net/url"
"testing"
)
@@ -48,6 +49,62 @@ func TestGenerateCleanSpecConfigBaseURL_HttpStrip(t *testing.T) {
GenerateCleanSpecConfigBaseURL(u, "crap.yaml#thing", true))
}
func TestSpecIndex_extractDefinitionRequiredRefProperties(t *testing.T) {
func Test_extractRequiredReferenceProperties(t *testing.T) {
d := `$ref: http://internets/shoes`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(d), &rootNode)
props := make(map[string][]string)
data := extractRequiredReferenceProperties("the-big.yaml#/cheese/thing",
rootNode.Content[0], "cakes", props)
assert.Len(t, props, 1)
assert.NotNil(t, data)
}
func Test_extractRequiredReferenceProperties_singleFile(t *testing.T) {
d := `$ref: http://cake.yaml/camel.yaml`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(d), &rootNode)
props := make(map[string][]string)
data := extractRequiredReferenceProperties("dingo-bingo-bango.yaml",
rootNode.Content[0], "cakes", props)
assert.Len(t, props, 1)
assert.NotNil(t, data)
}
func Test_extractRequiredReferenceProperties_http(t *testing.T) {
d := `$ref: http://cake.yaml/camel.yaml`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(d), &rootNode)
props := make(map[string][]string)
data := extractRequiredReferenceProperties("http://dingo-bingo-bango.yaml/camel.yaml",
rootNode.Content[0], "cakes", props)
assert.Len(t, props, 1)
assert.NotNil(t, data)
}
func Test_extractRequiredReferenceProperties_abs(t *testing.T) {
d := `$ref: http://cake.yaml/camel.yaml`
var rootNode yaml.Node
_ = yaml.Unmarshal([]byte(d), &rootNode)
props := make(map[string][]string)
data := extractRequiredReferenceProperties("/camel.yaml",
rootNode.Content[0], "cakes", props)
assert.Len(t, props, 1)
assert.NotNil(t, data)
}
func Test_extractDefinitionRequiredRefProperties_nil(t *testing.T) {
assert.Nil(t, extractDefinitionRequiredRefProperties(nil, nil, ""))
}