Просмотр исходного кода

Tests: For get ClusterSecretStore and secretstore

Signed-off-by: William Young <will.young@engineerbetter.com>
Co-authored-by: Dominic Meddick <dom.meddick@engineerbetter.com>
Co-authored-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com>
William Young 4 лет назад
Родитель
Сommit
b0ebcdfe2a

+ 1 - 1
pkg/controllers/secretsink/secretsink_controller.go

@@ -76,7 +76,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
 
 	_, err = r.GetSecretStore(ctx, ss)
 	if err != nil {
-		cond := NewSecretSinkCondition(esapi.SecretSinkReady, v1.ConditionFalse, "SecretSyncFailed", errFailedGetSecret)
+		cond := NewSecretSinkCondition(esapi.SecretSinkReady, v1.ConditionFalse, "SecretSyncFailed", errGetSecretStore)
 		ss = SetSecretSinkCondition(ss, *cond)
 	}
 

+ 43 - 13
pkg/controllers/secretsink/secretsink_controller_test.go

@@ -18,15 +18,15 @@ import (
 	"context"
 	"errors"
 
+	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
+	v1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
+	"github.com/external-secrets/external-secrets/pkg/controllers/secretsink/internal/fakes"
 	"github.com/go-logr/logr"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
 	v1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/types"
 	ctrl "sigs.k8s.io/controller-runtime"
-
-	esapi "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
-	"github.com/external-secrets/external-secrets/pkg/controllers/secretsink/internal/fakes"
 )
 
 var _ = Describe("secretsink", func() {
@@ -157,6 +157,7 @@ var _ = Describe("secretsink", func() {
 			Expect(name.Name).To(Equal("foo"))
 
 		})
+
 		It("returns an error if it doesn't exist", func() {
 			client.GetReturns(errors.New("secret not found"))
 			_, err := reconciler.GetSecret(context.TODO(), esapi.SecretSink{})
@@ -165,22 +166,51 @@ var _ = Describe("secretsink", func() {
 	})
 
 	Describe("#GetSecretStore", func() {
-		It("returns a secretstore if it exists", func() {
-			sink := esapi.SecretSink{
-				Spec: esapi.SecretSinkSpec{
-					SecretStoreRefs: []esapi.SecretSinkStoreRef{
-						{
-							Name: "foo",
-						},
+		sink := esapi.SecretSink{
+			Spec: esapi.SecretSinkSpec{
+				SecretStoreRefs: []esapi.SecretSinkStoreRef{
+					{
+						Name: "foo",
 					},
 				},
-			}
-			sink.Namespace = "bar"
+			},
+		}
+		sink.Namespace = "bar"
+
+		clusterSink := esapi.SecretSink{
+			Spec: esapi.SecretSinkSpec{
+				SecretStoreRefs: []esapi.SecretSinkStoreRef{
+					{
+						Name: "foo",
+						Kind: "ClusterSecretStore",
+					},
+				},
+			},
+		}
+
+		It("returns a secretstore if it exists", func() {
 			_, err := reconciler.GetSecretStore(context.TODO(), sink)
 			Expect(err).To(BeNil())
-			_, name, _ := client.GetArgsForCall(0)
+			Expect(client.GetCallCount()).To(Equal(1))
+			_, name, store := client.GetArgsForCall(0)
 			Expect(name.Namespace).To(Equal("bar"))
 			Expect(name.Name).To(Equal("foo"))
+			Expect(store).To(BeAssignableToTypeOf(&v1beta1.SecretStore{}))
+		})
+
+		It("returns an error if it doesn't exist", func() {
+			client.GetReturns(errors.New("secretstore not found"))
+			_, err := reconciler.GetSecretStore(context.TODO(), sink)
+			Expect(err).To(HaveOccurred())
+		})
+
+		It("returns a clustersecretstore if it exists", func() {
+			_, err := reconciler.GetSecretStore(context.TODO(), clusterSink)
+			Expect(err).To(BeNil())
+			Expect(client.GetCallCount()).To(Equal(1))
+			_, name, store := client.GetArgsForCall(0)
+			Expect(store).To(BeAssignableToTypeOf(&v1beta1.ClusterSecretStore{}))
+			Expect(name.Name).To(Equal("foo"))
 		})
 	})
 })