Преглед изворни кода

test(e2e): clean up shared namespaced cases

Moritz Johner пре 2 месеци
родитељ
комит
02da0136d4

+ 22 - 2
e2e/suites/provider/cases/common/namespaced_provider.go

@@ -17,10 +17,13 @@ limitations under the License.
 package common
 
 import (
+	"context"
 	"time"
 
+	. "github.com/onsi/gomega"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/types"
 
 	"github.com/external-secrets/external-secrets-e2e/framework"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
@@ -78,6 +81,11 @@ type NamespacedProviderRefreshConfig struct {
 
 func NamespacedProviderRefresh(_ *framework.Framework, cfg NamespacedProviderRefreshConfig) (string, func(*framework.TestCase)) {
 	return cfg.Description, func(tc *framework.TestCase) {
+		refreshInterval := cfg.RefreshInterval
+		if refreshInterval <= 0 {
+			refreshInterval = 10 * time.Second
+		}
+
 		waitTimeout := cfg.WaitTimeout
 		if waitTimeout == 0 {
 			waitTimeout = 30 * time.Second
@@ -85,7 +93,7 @@ func NamespacedProviderRefresh(_ *framework.Framework, cfg NamespacedProviderRef
 
 		tc.ExternalSecret.ObjectMeta.Name = cfg.ExternalSecretName
 		tc.ExternalSecret.Spec.Target.Name = cfg.TargetSecretName
-		tc.ExternalSecret.Spec.RefreshInterval = &metav1.Duration{Duration: cfg.RefreshInterval}
+		tc.ExternalSecret.Spec.RefreshInterval = &metav1.Duration{Duration: refreshInterval}
 		tc.Secrets = map[string]framework.SecretEntry{
 			cfg.RemoteKey: {Value: cfg.InitialSecretValue},
 		}
@@ -111,7 +119,7 @@ func NamespacedProviderRefresh(_ *framework.Framework, cfg NamespacedProviderRef
 					Value: cfg.UpdatedSecretValue,
 				})
 			}
-			waitForSecretData(tc.Framework, tc.ExternalSecret.Namespace, tc.ExternalSecret.Spec.Target.Name, map[string][]byte{
+			waitForNamespacedProviderSecretData(tc.Framework, tc.ExternalSecret.Namespace, tc.ExternalSecret.Spec.Target.Name, map[string][]byte{
 				cfg.SecretKey: []byte(cfg.UpdatedExpectedData),
 			}, waitTimeout)
 		}
@@ -158,3 +166,15 @@ func NamespacedProviderFind(_ *framework.Framework, cfg NamespacedProviderFindCo
 		}}
 	}
 }
+
+func waitForNamespacedProviderSecretData(f *framework.Framework, namespace, name string, expected map[string][]byte, timeout time.Duration) {
+	Eventually(func(g Gomega) {
+		var syncedSecret corev1.Secret
+		g.Expect(f.CRClient.Get(context.Background(), types.NamespacedName{
+			Name:      name,
+			Namespace: namespace,
+		}, &syncedSecret)).To(Succeed())
+		g.Expect(syncedSecret.Type).To(Equal(corev1.SecretTypeOpaque))
+		g.Expect(syncedSecret.Data).To(Equal(expected))
+	}, timeout, 5*time.Second).Should(Succeed())
+}

+ 0 - 50
e2e/suites/provider/cases/fake/provider.go

@@ -17,9 +17,6 @@ limitations under the License.
 package fake
 
 import (
-	"fmt"
-	"time"
-
 	// nolint
 	. "github.com/onsi/ginkgo/v2"
 
@@ -30,7 +27,6 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
 	"github.com/external-secrets/external-secrets-e2e/framework"
-	"github.com/external-secrets/external-secrets-e2e/suites/provider/cases/common"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 )
 
@@ -120,49 +116,3 @@ func removeFakeProviderData(data []esv1.FakeProviderData, key, version string) [
 	}
 	return filtered
 }
-
-func namespacedProviderSyncCase(f *framework.Framework) (string, func(*framework.TestCase)) {
-	return common.NamespacedProviderSync(f, common.NamespacedProviderSyncConfig{
-		Description:        "[fake] should sync a namespaced secret",
-		ExternalSecretName: "fake-sync-es",
-		TargetSecretName:   "fake-sync-target",
-		RemoteKey:          fmt.Sprintf("fake-sync-%s", f.Namespace.Name),
-		RemoteSecretValue:  `{"value":"fake-sync-value"}`,
-		RemoteProperty:     "value",
-		SecretKey:          "value",
-		ExpectedValue:      "fake-sync-value",
-	})
-}
-
-func namespacedProviderRefreshCase(f *framework.Framework) (string, func(*framework.TestCase)) {
-	return common.NamespacedProviderRefresh(f, common.NamespacedProviderRefreshConfig{
-		Description:         "[fake] should refresh after the provider data changes",
-		ExternalSecretName:  "fake-refresh-es",
-		TargetSecretName:    "fake-refresh-target",
-		RemoteKey:           fmt.Sprintf("fake-refresh-%s", f.Namespace.Name),
-		InitialSecretValue:  `{"value":"fake-initial-value"}`,
-		UpdatedSecretValue:  `{"value":"fake-updated-value"}`,
-		RemoteProperty:      "value",
-		SecretKey:           "value",
-		InitialExpectedData: "fake-initial-value",
-		UpdatedExpectedData: "fake-updated-value",
-		RefreshInterval:     defaultV2RefreshInterval,
-		WaitTimeout:         30 * time.Second,
-	})
-}
-
-func namespacedProviderFindCase(f *framework.Framework) (string, func(*framework.TestCase)) {
-	return common.NamespacedProviderFind(f, common.NamespacedProviderFindConfig{
-		Description:        "[fake] should sync dataFrom.find matches",
-		ExternalSecretName: "fake-find-es",
-		TargetSecretName:   "fake-find-target",
-		MatchRegExp:        fmt.Sprintf("fake-find-%s-(one|two)", f.Namespace.Name),
-		MatchingSecrets: map[string]string{
-			fmt.Sprintf("fake-find-%s-one", f.Namespace.Name): `{"value":"fake-find-one"}`,
-			fmt.Sprintf("fake-find-%s-two", f.Namespace.Name): `{"value":"fake-find-two"}`,
-		},
-		IgnoredSecrets: map[string]string{
-			fmt.Sprintf("fake-find-ignore-%s", f.Namespace.Name): `{"value":"fake-ignore"}`,
-		},
-	})
-}

+ 3 - 3
e2e/suites/provider/cases/fake/provider_v2.go

@@ -58,9 +58,9 @@ var _ = Describe("[fake] v2 namespaced provider", Label("fake", "v2", "namespace
 
 	DescribeTable("namespaced provider",
 		framework.TableFuncWithExternalSecret(f, prov),
-		Entry(namespacedProviderSyncCase(f)),
-		Entry(namespacedProviderRefreshCase(f)),
-		Entry(namespacedProviderFindCase(f)),
+		Entry(common.FakeProviderSync(f)),
+		Entry(common.FakeProviderRefresh(f)),
+		Entry(common.FakeProviderFind(f)),
 		Entry(common.StatusNotUpdatedAfterSuccessfulSync(f)),
 	)
 })