func/function_git_unit_test.go

91 lines
1.5 KiB
Go

package function
import (
"testing"
"knative.dev/pkg/ptr"
)
func Test_validateGit(t *testing.T) {
tests := []struct {
name string
git Git
mandatoryGit bool
errs int
}{
{
"correct 'Git - only URL https",
Git{
URL: ptr.String("https://myrepo/foo.git"),
},
true,
0,
},
{
"correct 'Git - only URL scp",
Git{
URL: ptr.String("git@myrepo:foo.git"),
},
true,
0,
},
{
"correct 'Git - URL + revision",
Git{
URL: ptr.String("https://myrepo/foo.git"),
Revision: ptr.String("mybranch"),
},
true,
0,
},
{
"correct 'Git - URL + context-dir",
Git{
URL: ptr.String("https://myrepo/foo.git"),
ContextDir: ptr.String("my-folder"),
},
true,
0,
},
{
"correct 'Git - URL + revision & context-dir",
Git{
URL: ptr.String("https://myrepo/foo.git"),
Revision: ptr.String("mybranch"),
ContextDir: ptr.String("my-folder"),
},
true,
0,
},
{
"incorrect 'Git - bad URL",
Git{
URL: ptr.String("foo"),
},
true,
1,
},
{
"incorrect 'Git - missing URL",
Git{},
true,
1,
},
{
"correct 'Git - not mandatory",
Git{},
false,
0,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := validateGit(tt.git, tt.mandatoryGit); len(got) != tt.errs {
t.Errorf("validateGit() = %v\n got %d errors but want %d", got, len(got), tt.errs)
}
})
}
}