diff --git a/secrets/secrets_test.go b/secrets/secrets_test.go new file mode 100644 index 00000000..492eab81 --- /dev/null +++ b/secrets/secrets_test.go @@ -0,0 +1,48 @@ +package secrets + +import ( + "github.com/rusenask/keel/types" + "github.com/rusenask/keel/util/image" + + "k8s.io/client-go/pkg/api/v1" + + testutil "github.com/rusenask/keel/util/testing" + "testing" +) + +var secretDataPayload = `{"https://index.docker.io/v1/":{"username":"user-x","password":"pass-x","email":"karolis.rusenas@gmail.com","auth":"somethinghere"}}` + +func TestGetSecret(t *testing.T) { + imgRef, _ := image.Parse("karolisr/webhook-demo:0.0.11") + + impl := &testutil.FakeK8sImplementer{ + AvailableSecret: &v1.Secret{ + Data: map[string][]byte{ + dockerConfigJSONKey: []byte(secretDataPayload), + }, + Type: v1.SecretTypeDockercfg, + }, + } + + getter := NewGetter(impl) + + trackedImage := &types.TrackedImage{ + Image: imgRef, + Namespace: "default", + Secrets: []string{"myregistrysecret"}, + } + + creds, err := getter.Get(trackedImage) + if err != nil { + t.Errorf("failed to get creds: %s", err) + } + + if creds.Username != "user-x" { + t.Errorf("unexpected username: %s", creds.Username) + } + + if creds.Password != "pass-x" { + t.Errorf("unexpected pass: %s", creds.Password) + } + +}