93 lines
1.9 KiB
Go
93 lines
1.9 KiB
Go
package pubsub
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/keel-hq/keel/util/image"
|
|
)
|
|
|
|
func unsafeImageRef(img string) *image.Reference {
|
|
ref, err := image.Parse(img)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return ref
|
|
}
|
|
|
|
func Test_isGoogleContainerRegistry(t *testing.T) {
|
|
type args struct {
|
|
registry string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "gcr",
|
|
args: args{registry: unsafeImageRef("gcr.io/v2-namespace/hello-world:1.1").Registry()},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "docker registry",
|
|
args: args{registry: unsafeImageRef("docker.io/v2-namespace/hello-world:1.1").Registry()},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "custom registry",
|
|
args: args{registry: unsafeImageRef("localhost:4000/v2-namespace/hello-world:1.1").Registry()},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := isGoogleContainerRegistry(tt.args.registry); got != tt.want {
|
|
t.Errorf("isGoogleContainerRegistry() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestClusterName(t *testing.T) {
|
|
|
|
cn := "my-cluster-x"
|
|
|
|
handler := func(resp http.ResponseWriter, req *http.Request) {
|
|
resp.WriteHeader(200)
|
|
resp.Write([]byte(cn))
|
|
}
|
|
|
|
// create test server with handler
|
|
ts := httptest.NewServer(http.HandlerFunc(handler))
|
|
defer ts.Close()
|
|
|
|
name, err := getClusterName(ts.URL)
|
|
if err != nil {
|
|
t.Errorf("unexpected error while getting cluster name")
|
|
}
|
|
|
|
if name != cn {
|
|
t.Errorf("unexpected cluster name: %s", name)
|
|
}
|
|
}
|
|
|
|
func TestGetContainerRegistryURI(t *testing.T) {
|
|
|
|
name := containerRegistrySubName("", "project-1", "topic-1")
|
|
|
|
if name != "keel-unknown-project-1-topic-1" {
|
|
t.Errorf("unexpected topic name: %s", name)
|
|
}
|
|
}
|
|
|
|
func TestGetContainerRegistryURIWithClusterNameSet(t *testing.T) {
|
|
|
|
name := containerRegistrySubName("testxxx", "project-1", "topic-1")
|
|
|
|
if name != "keel-testxxx-project-1-topic-1" {
|
|
t.Errorf("unexpected topic name: %s", name)
|
|
}
|
|
}
|