handle empty pipeline name in lookup
This commit is contained in:
@@ -13,7 +13,7 @@ import (
|
||||
// Lookup returns the named pipeline from the Manifest.
|
||||
func Lookup(name string, manifest *manifest.Manifest) (*Pipeline, error) {
|
||||
for _, resource := range manifest.Resources {
|
||||
if resource.GetName() != name {
|
||||
if !isNameMatch(resource.GetName(), name) {
|
||||
continue
|
||||
}
|
||||
if pipeline, ok := resource.(*Pipeline); ok {
|
||||
@@ -22,3 +22,8 @@ func Lookup(name string, manifest *manifest.Manifest) (*Pipeline, error) {
|
||||
}
|
||||
return nil, errors.New("resource not found")
|
||||
}
|
||||
|
||||
// helper function returns true if the name matches.
|
||||
func isNameMatch(a, b string) bool {
|
||||
return a == b || (a == "" && b == "default")
|
||||
}
|
||||
|
||||
@@ -43,3 +43,20 @@ func TestLookupNotFound(t *testing.T) {
|
||||
t.Errorf("Expect resource not found error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNameMatch(t *testing.T) {
|
||||
tests := []struct {
|
||||
a, b string
|
||||
match bool
|
||||
}{
|
||||
{"a", "b", false},
|
||||
{"a", "a", true},
|
||||
{"", "default", true},
|
||||
}
|
||||
for _, test := range tests {
|
||||
got, want := isNameMatch(test.a, test.b), test.match
|
||||
if got != want {
|
||||
t.Errorf("Expect %q and %q match is %v", test.a, test.b, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user