فهرست منبع

Created setsecret table test structure

William Young 3 سال پیش
والد
کامیت
580e526d47
2فایلهای تغییر یافته به همراه59 افزوده شده و 6 حذف شده
  1. 0 1
      pkg/provider/vault/vault.go
  2. 59 5
      pkg/provider/vault/vault_test.go

+ 0 - 1
pkg/provider/vault/vault.go

@@ -746,7 +746,6 @@ func (v *client) readSecret(ctx context.Context, path, version string) (map[stri
 		// Vault KV2 has data embedded within sub-field
 		// reference - https://www.vaultproject.io/api/secret/kv/kv-v2#read-secret-version
 		dataInt, ok := vaultSecret.Data["data"]
-
 		if !ok {
 			return nil, errors.New(errDataField)
 		}

+ 59 - 5
pkg/provider/vault/vault_test.go

@@ -1455,7 +1455,6 @@ func TestSetSecretEqualsPushSecret(t *testing.T) {
 			},
 		}, nil),
 	}
-	f.WriteWithContextFn = fake.NewWriteWithContextFn(nil, nil)
 	client := client{
 		store: &esv1beta1.VaultProvider{
 			Path: &path,
@@ -1496,7 +1495,6 @@ func TestSetSecretErrorReadingSecret(t *testing.T) {
 	f := fake.Logical{
 		ReadWithDataWithContextFn: fake.NewReadWithContextFn(nil, fmt.Errorf("you shall not pass")),
 	}
-	f.WriteWithContextFn = fake.NewWriteWithContextFn(nil, nil)
 	client := client{
 		store: &esv1beta1.VaultProvider{
 			Path: &path,
@@ -1512,7 +1510,6 @@ func TestSetSecretErrorReadingSecret(t *testing.T) {
 // Test if secret is managed by eso.
 func TestSetSecretNotManagedByESO(t *testing.T) {
 	path := secretPath
-
 	f := fake.Logical{
 		ReadWithDataWithContextFn: fake.NewReadWithContextFn(map[string]interface{}{
 			"key": "fake value",
@@ -1522,8 +1519,6 @@ func TestSetSecretNotManagedByESO(t *testing.T) {
 		}, nil),
 	}
 
-	f.WriteWithContextFn = fake.NewWriteWithContextFn(nil, nil)
-
 	client := client{
 		store: &esv1beta1.VaultProvider{
 			Path: &path,
@@ -1536,3 +1531,62 @@ func TestSetSecretNotManagedByESO(t *testing.T) {
 
 	assert.Error(t, err, "secret not managed by external-secrets")
 }
+
+func TestSetSecret(t *testing.T) {
+	type args struct {
+		store    *esv1beta1.VaultProvider
+		kube     kclient.Client
+		vLogical Logical
+		ns       string
+	}
+
+	type want struct {
+		err error
+		val map[string][]byte
+	}
+
+	tests := map[string]struct {
+		reason string
+		args   args
+		want   want
+	}{
+		"SetSecret": {
+			reason: "secret is succesfully set.",
+			args: args{
+				store: makeValidSecretStoreWithVersion(esv1beta1.VaultKVStoreV2).Spec.Provider.Vault,
+				vLogical: &fake.Logical{
+					ReadWithDataWithContextFn: fake.NewReadWithContextFn(map[string]interface{}{
+						"data": map[string]string{
+							"random key": "random value",
+						},
+					}, nil),
+				},
+			},
+			want: want{
+				err: nil,
+			},
+		},
+	}
+
+	// (map[string]interface{}{
+	// 	"key": "fake value",
+	// 	"custom_metadata": map[string]interface{}{
+	// 		"managed-by": "not-external-secrets",
+	// 	},
+	// }, nil),
+
+	for name, tc := range tests {
+		t.Run(name, func(t *testing.T) {
+			ref := fakeRef{key: "I'm a key"}
+			client := &client{
+				kube:      tc.args.kube,
+				logical:   tc.args.vLogical,
+				store:     tc.args.store,
+				namespace: tc.args.ns,
+			}
+			if err := client.SetSecret(context.Background(), []byte("fake value"), ref); err != tc.want.err {
+				t.Errorf("client.SetSecret() error = %v, wantErr %v", err, tc.want.err)
+			}
+		})
+	}
+}