mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-06-04 12:32:58 +00:00
86 lines
2.0 KiB
Go
86 lines
2.0 KiB
Go
package api
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeRepositoryFullName(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
input string
|
|
wantName string
|
|
wantFullName string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "owner slash repo",
|
|
input: "acme/platform",
|
|
wantName: "platform",
|
|
wantFullName: "acme/platform",
|
|
},
|
|
{
|
|
name: "https clone URL",
|
|
input: "https://github.com/acme/platform.git",
|
|
wantName: "platform",
|
|
wantFullName: "acme/platform",
|
|
},
|
|
{
|
|
name: "ssh URL",
|
|
input: "git@github.com:acme/platform.git",
|
|
wantName: "platform",
|
|
wantFullName: "acme/platform",
|
|
},
|
|
{
|
|
name: "invalid format",
|
|
input: "acme",
|
|
wantErr: true,
|
|
},
|
|
{
|
|
name: "empty",
|
|
input: "",
|
|
wantErr: true,
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
gotName, gotFullName, err := normalizeRepositoryFullName(tc.input)
|
|
if tc.wantErr {
|
|
if err == nil {
|
|
t.Fatalf("expected error, got nil")
|
|
}
|
|
return
|
|
}
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
if gotName != tc.wantName {
|
|
t.Fatalf("name mismatch: got %q want %q", gotName, tc.wantName)
|
|
}
|
|
if gotFullName != tc.wantFullName {
|
|
t.Fatalf("full name mismatch: got %q want %q", gotFullName, tc.wantFullName)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDeriveCloneURL(t *testing.T) {
|
|
fullName := "acme/platform"
|
|
cases := []struct {
|
|
provider string
|
|
want string
|
|
}{
|
|
{provider: "github", want: "https://github.com/acme/platform.git"},
|
|
{provider: "gitlab", want: "https://gitlab.com/acme/platform.git"},
|
|
{provider: "bitbucket", want: "https://bitbucket.org/acme/platform.git"},
|
|
{provider: "unknown", want: "acme/platform"},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.provider, func(t *testing.T) {
|
|
got := deriveCloneURL(tc.provider, fullName)
|
|
if got != tc.want {
|
|
t.Fatalf("deriveCloneURL(%q) = %q, want %q", tc.provider, got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|