Ver código fonte

Test wont panic has fake write method

Signed-off-by: William Young <will.young@engineerbetter.com>
Co-authored-by: Amr Fawzy <amr.fawzy@container-solutions.com>
Co-authored-by: Adrienne Galloway <adrienne.galloway@engineerbetter.com>
Co-authored-by: Lilly Daniell <lilly.daniell@engineerbetter.com>
William Young 4 anos atrás
pai
commit
ca3c0a9a7f

+ 9 - 0
pkg/provider/vault/fake/vault.go

@@ -48,6 +48,15 @@ func NewReadWithContextFn(secret map[string]interface{}, err error) ReadWithData
 	}
 	}
 }
 }
 
 
+func NewWriteWithContextFn(secret map[string]interface{}, err error) WriteWithContextFn {
+	return func(ctx context.Context, path string, data map[string]interface{}) (*vault.Secret, error) {
+		vault := &vault.Secret{
+			Data: secret,
+		}
+		return vault, err
+	}
+}
+
 func (f Logical) ReadWithDataWithContext(ctx context.Context, path string, data map[string][]string) (*vault.Secret, error) {
 func (f Logical) ReadWithDataWithContext(ctx context.Context, path string, data map[string][]string) (*vault.Secret, error) {
 	return f.ReadWithDataWithContextFn(ctx, path, data)
 	return f.ReadWithDataWithContextFn(ctx, path, data)
 }
 }

+ 15 - 2
pkg/provider/vault/vault.go

@@ -360,9 +360,22 @@ func (c *connector) ValidateStore(store esv1beta1.GenericStore) error {
 	return nil
 	return nil
 }
 }
 
 
-// Not Implemented SetSecret.
+// create a test
 func (v *client) SetSecret(ctx context.Context, value []byte, remoteRef esv1beta1.PushRemoteRef) error {
 func (v *client) SetSecret(ctx context.Context, value []byte, remoteRef esv1beta1.PushRemoteRef) error {
-	return fmt.Errorf("not implemented")
+	secretData := map[string]interface{}{
+		remoteRef.GetRemoteKey(): value,
+	}
+
+	path := v.buildPath(remoteRef.GetRemoteKey())
+	_, err := v.logical.WriteWithContext(ctx, path, secretData)
+
+	if err != nil {
+		return err
+	}
+	// This is the address of our vault on our local cluster
+	//cfg.Address = "vault.vault-ns.svc.cluster.local.8200"
+
+	return nil
 }
 }
 
 
 // GetAllSecrets gets multiple secrets from the provider and loads into a kubernetes secret.
 // GetAllSecrets gets multiple secrets from the provider and loads into a kubernetes secret.

+ 28 - 4
pkg/provider/vault/vault_test.go

@@ -22,16 +22,15 @@ import (
 	"testing"
 	"testing"
 
 
 	"github.com/crossplane/crossplane-runtime/pkg/test"
 	"github.com/crossplane/crossplane-runtime/pkg/test"
+	esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
+	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
+	"github.com/external-secrets/external-secrets/pkg/provider/vault/fake"
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp"
 	vault "github.com/hashicorp/vault/api"
 	vault "github.com/hashicorp/vault/api"
 	corev1 "k8s.io/api/core/v1"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/utils/pointer"
 	"k8s.io/utils/pointer"
 	kclient "sigs.k8s.io/controller-runtime/pkg/client"
 	kclient "sigs.k8s.io/controller-runtime/pkg/client"
-
-	esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
-	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
-	"github.com/external-secrets/external-secrets/pkg/provider/vault/fake"
 )
 )
 
 
 const (
 const (
@@ -1399,3 +1398,28 @@ func TestValidateStore(t *testing.T) {
 		})
 		})
 	}
 	}
 }
 }
+
+type fakeRef struct {
+	key string
+}
+
+func (f fakeRef) GetRemoteKey() string {
+	return f.key
+}
+
+func TestSetSecret(t *testing.T) {
+	path := "secret"
+	client := client{
+		store: &esv1beta1.VaultProvider{
+			Path: &path,
+		},
+		logical: fake.Logical{
+			WriteWithContextFn: fake.NewWriteWithContextFn(nil, fmt.Errorf("error")),
+		},
+	}
+	ref := fakeRef{key: "I'm a key"}
+	err := client.SetSecret(context.Background(), []byte("HI"), ref)
+	if err != nil {
+		t.Errorf("%v", err)
+	}
+}