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

CreateSecretReturnsError test

Signed-off-by: Adrienne Galloway <adrienne.galloway@engineerbetter.com>
Co-authored-by: Marcus Dantas <marcus.dantas@engineerbetter.com>
Co-authored-by: Lilly Daniell <lilly.daniell@engineerbetter.com>
Co-authored-by: Amr Fawzy <amr.fawzy@container-solutions.com>
Co-authored-by: Dipo Ajayi  <dipoajayi@ymail.com>
Adrienne Galloway 3 лет назад
Родитель
Сommit
59240406f8

+ 3 - 4
pkg/provider/gcp/secretmanager/secretsmanager.go

@@ -251,14 +251,13 @@ func (sm *ProviderGCP) SetSecret(ctx context.Context, payload []byte, remoteRef
 
 	var gErr *apierror.APIError
 
-	if errors.As(err, &gErr) {
-		if err != nil && gErr.GRPCStatus().Code() == codes.NotFound {
+	if err != nil && errors.As(err, &gErr) {
+		if gErr.GRPCStatus().Code() == codes.NotFound {
 			gcpSecret, err = sm.SecretManagerClient.CreateSecret(ctx, createSecretReq)
 			if err != nil {
 				return err
 			}
-		}
-		if err != nil {
+		} else {
 			return err
 		}
 	}

+ 17 - 4
pkg/provider/gcp/secretmanager/secretsmanager_test.go

@@ -198,8 +198,11 @@ func (f fakeRef) GetRemoteKey() string {
 func TestSetSecret(t *testing.T) {
 	ref := fakeRef{key: "/baz"}
 
-	notFoundStatusError := status.Error(codes.NotFound, "failed")
-	notFoundError, _ := apierror.FromError(notFoundStatusError)
+	notFoundError := status.Error(codes.NotFound, "failed")
+	notFoundError, _ = apierror.FromError(notFoundError)
+
+	canceledError := status.Error(codes.Canceled, "canceled")
+	canceledError, _ = apierror.FromError(canceledError)
 
 	APIerror := fmt.Errorf("API Error")
 	labelError := fmt.Errorf("secret %v is not managed by external secrets", ref.GetRemoteKey())
@@ -343,8 +346,8 @@ func TestSetSecret(t *testing.T) {
 				err: nil,
 			},
 		},
-		"CreateSecretReturnsError": {
-			reason: "secret not created if CreateSecret returns error",
+		"CreateSecretReturnsNotFoundError": {
+			reason: "secret not created if CreateSecret returns not found error",
 			args: args{
 				mock:                   smtc.mockClient,
 				GetSecretMockReturn:    fakesm.GetSecretMockReturn{Secret: nil, Err: notFoundError},
@@ -354,6 +357,16 @@ func TestSetSecret(t *testing.T) {
 				err: notFoundError,
 			},
 		},
+		"CreateSecretReturnsError": {
+			reason: "secret not created if CreateSecret returns error",
+			args: args{
+				mock:                smtc.mockClient,
+				GetSecretMockReturn: fakesm.GetSecretMockReturn{Secret: nil, Err: canceledError},
+			},
+			want: want{
+				err: canceledError,
+			},
+		},
 	}
 	for name, tc := range tests {
 		t.Run(name, func(t *testing.T) {