keel/registry/registry_test.go

120 lines
2.5 KiB
Go

package registry
import (
"github.com/keel-hq/keel/constants"
"fmt"
"os"
"testing"
)
func TestDigest(t *testing.T) {
client := New()
digest, err := client.Digest(Opts{
Registry: "https://index.docker.io",
Name: "karolisr/webhook-demo",
Tag: "alpha",
})
if err != nil {
t.Errorf("error while getting digest: %s", err)
}
if digest != "sha256:c76aa6ac847308941171a21ca87d611a8b7ec1511ed841f0a7646aa1eb3064b8" {
t.Errorf("unexpected digest: %s", digest)
}
}
func TestGet(t *testing.T) {
client := New()
repo, err := client.Get(Opts{
Registry: constants.DefaultDockerRegistry,
Name: "karolisr/keel",
})
if err != nil {
t.Errorf("error while getting repo: %s", err)
}
fmt.Println(repo.Name)
fmt.Println(repo.Tags)
}
// https://registry.opensource.zalan.do/v2/teapot/external-dns
func TestGetNonDockerRegistryTags(t *testing.T) {
client := New()
repo, err := client.Get(Opts{
Registry: "https://registry.opensource.zalan.do",
Name: "teapot/external-dns",
})
if err != nil {
t.Errorf("error while getting repo: %s", err)
}
fmt.Println(repo.Name)
fmt.Println(repo.Tags)
}
func TestGetNonDockerRegistryManifest(t *testing.T) {
client := New()
d, err := client.Digest(Opts{
Registry: "https://registry.opensource.zalan.do",
Name: "teapot/external-dns",
Tag: "v0.4.8",
})
if err != nil {
t.Errorf("error while getting repo manifest: %s", err)
}
if d != "sha256:7aa5175f39a7e8a4172972524302c9a8196f681e40d6ee5d2f6bf0ab7d600fee" {
t.Errorf("unexpected sha?")
}
}
func TestGetQuayRegistryManifest(t *testing.T) {
client := New()
d, err := client.Digest(Opts{
Registry: "https://quay.io",
Name: "jetstack/cert-manager-controller",
Tag: "v0.2.3",
})
if err != nil {
t.Fatalf("error while getting repo manifest: %s", err)
}
if d != "sha256:6bccc03f2e98e34f2b1782d29aed77763e93ea81de96f246ebeb81effd947085" {
t.Errorf("unexpected sha? %s", d)
}
}
var EnvArtifactoryUsername = "ARTIFACTORY_USERNAME"
var EnvArtifactoryPassword = "ARTIFACTORY_PASSWORD"
func TestGetArtifactory(t *testing.T) {
if os.Getenv(EnvArtifactoryUsername) == "" && os.Getenv(EnvArtifactoryPassword) == "" {
t.Skip()
}
client := New()
repo, err := client.Get(Opts{
Registry: "https://keel-docker-local.jfrog.io",
Name: "webhook-demo",
Username: os.Getenv(EnvArtifactoryUsername),
Password: os.Getenv(EnvArtifactoryPassword),
})
if err != nil {
t.Errorf("error while getting repo: %s", err)
}
fmt.Println(repo.Name)
fmt.Println(repo.Tags)
}