mirror of https://github.com/knative/func.git
91 lines
1.5 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|