|
@@ -21,6 +21,7 @@ import (
|
|
|
"strings"
|
|
"strings"
|
|
|
"testing"
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
+ authv1 "k8s.io/api/authorization/v1"
|
|
|
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"
|
|
|
fclient "sigs.k8s.io/controller-runtime/pkg/client/fake"
|
|
fclient "sigs.k8s.io/controller-runtime/pkg/client/fake"
|
|
@@ -32,6 +33,7 @@ import (
|
|
|
const (
|
|
const (
|
|
|
errTestFetchCredentialsSecret = "test could not fetch Credentials secret failed"
|
|
errTestFetchCredentialsSecret = "test could not fetch Credentials secret failed"
|
|
|
errTestAuthValue = "test failed key didn't match expected value"
|
|
errTestAuthValue = "test failed key didn't match expected value"
|
|
|
|
|
+ errSomethingWentWrong = "Something went wrong"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
type fakeClient struct {
|
|
type fakeClient struct {
|
|
@@ -42,11 +44,22 @@ func (fk fakeClient) Get(ctx context.Context, name string, opts metav1.GetOption
|
|
|
secret, ok := fk.secretMap[name]
|
|
secret, ok := fk.secretMap[name]
|
|
|
|
|
|
|
|
if !ok {
|
|
if !ok {
|
|
|
- return nil, errors.New("Something went wrong")
|
|
|
|
|
|
|
+ return nil, errors.New(errSomethingWentWrong)
|
|
|
}
|
|
}
|
|
|
return &secret, nil
|
|
return &secret, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+type fakeReviewClient struct {
|
|
|
|
|
+ authReview *authv1.SelfSubjectAccessReview
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (fk fakeReviewClient) Create(ctx context.Context, selfSubjectAccessReview *authv1.SelfSubjectAccessReview, opts metav1.CreateOptions) (*authv1.SelfSubjectAccessReview, error) {
|
|
|
|
|
+ if fk.authReview == nil {
|
|
|
|
|
+ return nil, errors.New(errSomethingWentWrong)
|
|
|
|
|
+ }
|
|
|
|
|
+ return fk.authReview, nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func TestKubernetesSecretManagerGetSecret(t *testing.T) {
|
|
func TestKubernetesSecretManagerGetSecret(t *testing.T) {
|
|
|
expected := make(map[string][]byte)
|
|
expected := make(map[string][]byte)
|
|
|
value := "bar"
|
|
value := "bar"
|
|
@@ -70,7 +83,7 @@ func TestKubernetesSecretManagerGetSecret(t *testing.T) {
|
|
|
ref = esv1beta1.ExternalSecretDataRemoteRef{Key: "Key2", Property: "foo"}
|
|
ref = esv1beta1.ExternalSecretDataRemoteRef{Key: "Key2", Property: "foo"}
|
|
|
_, err := kp.GetSecret(ctx, ref)
|
|
_, err := kp.GetSecret(ctx, ref)
|
|
|
|
|
|
|
|
- if err.Error() != "Something went wrong" {
|
|
|
|
|
|
|
+ if err.Error() != errSomethingWentWrong {
|
|
|
t.Error("test failed")
|
|
t.Error("test failed")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -258,3 +271,35 @@ func ErrorContains(out error, want string) bool {
|
|
|
}
|
|
}
|
|
|
return strings.Contains(out.Error(), want)
|
|
return strings.Contains(out.Error(), want)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func TestValidate(t *testing.T) {
|
|
|
|
|
+ authReview := authv1.SelfSubjectAccessReview{
|
|
|
|
|
+ Status: authv1.SubjectAccessReviewStatus{
|
|
|
|
|
+ Allowed: true,
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+ fakeClient := fakeReviewClient{authReview: &authReview}
|
|
|
|
|
+ k := ProviderKubernetes{ReviewClient: fakeClient}
|
|
|
|
|
+ err := k.Validate()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Errorf("Test Failed! %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ authReview = authv1.SelfSubjectAccessReview{
|
|
|
|
|
+ Status: authv1.SubjectAccessReviewStatus{
|
|
|
|
|
+ Allowed: false,
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+ fakeClient = fakeReviewClient{authReview: &authReview}
|
|
|
|
|
+ k = ProviderKubernetes{ReviewClient: fakeClient}
|
|
|
|
|
+ err = k.Validate()
|
|
|
|
|
+ if err.Error() != "client is not allowed to get secrets" {
|
|
|
|
|
+ t.Errorf("Test Failed! Wanted client is not allowed to get secrets got: %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ fakeClient = fakeReviewClient{}
|
|
|
|
|
+ k = ProviderKubernetes{ReviewClient: fakeClient}
|
|
|
|
|
+ err = k.Validate()
|
|
|
|
|
+ if err.Error() != "could not verify if client is valid: Something went wrong" {
|
|
|
|
|
+ t.Errorf("Test Failed! Wanted could not verify if client is valid: Something went wrong got: %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|