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

Table test for AccessSecretVersion

Add error catch for SetSecret:AccessSecretVersion

Signed-off-by: Adrienne Galloway <adrienne.galloway@engineerbetter.com>
Co-authored-by: William Young <will.young@enginee:rbetter.com>
Co-authored-by: Lilly Daniell <lilly.daniell@engineerbetter.com>
Co-authored-by: Marcus Dantas <Marcus.dantas@engineerbetter.com>
Adrienne Galloway 3 лет назад
Родитель
Сommit
a34b6c02e0

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

@@ -280,6 +280,10 @@ func (sm *ProviderGCP) SetSecret(ctx context.Context, payload []byte, remoteRef
 		}
 	}
 
+	if err != nil {
+		return err
+	}
+
 	if gcpVersion != nil && gcpVersion.Payload != nil && string(payload) == string(gcpVersion.Payload.Data) {
 		return nil
 	}

+ 14 - 42
pkg/provider/gcp/secretmanager/secretsmanager_test.go

@@ -200,7 +200,7 @@ func (f fakeRef) GetRemoteKey() string {
 
 // We need to add the NewGetSecretFn into our args struct so that they modifiable.
 func TestSetSecret(t *testing.T) {
-	errAddSecretVersion := fmt.Errorf("API Error")
+	APIerror := fmt.Errorf("API Error")
 
 	smtc := secretManagerTestCase{
 		mockClient:     &fakesm.MockSMClient{},
@@ -257,10 +257,21 @@ func TestSetSecret(t *testing.T) {
 				mock:                          smtc.mockClient,
 				GetSecretMockReturn:           fakesm.GetSecretMockReturn{Secret: newSecret(), Err: nil},
 				AccessSecretVersionMockReturn: fakesm.AccessSecretVersionMockReturn{Res: &res, Err: nil},
-				AddSecretVersionMockReturn:    fakesm.AddSecretVersionMockReturn{SecretVersion: nil, Err: errAddSecretVersion},
+				AddSecretVersionMockReturn:    fakesm.AddSecretVersionMockReturn{SecretVersion: nil, Err: APIerror},
 			},
 			want: want{
-				err: errAddSecretVersion,
+				err: APIerror,
+			},
+		},
+		"AccessSecretVersion": {
+			reason: "secret not pushed if AccessSecretVersion errors",
+			args: args{
+				mock:                          smtc.mockClient,
+				GetSecretMockReturn:           fakesm.GetSecretMockReturn{Secret: newSecret(), Err: nil},
+				AccessSecretVersionMockReturn: fakesm.AccessSecretVersionMockReturn{Res: nil, Err: APIerror},
+			},
+			want: want{
+				err: APIerror,
 			},
 		},
 	}
@@ -281,45 +292,6 @@ func TestSetSecret(t *testing.T) {
 	}
 }
 
-func TestSetSecretAddSecretVersion(t *testing.T) {
-	client := newClient()
-	pushRemoteRef := newPushRemoteRef()
-	secret := newSecret()
-	p := newProvider(client)
-
-	expectedErr := "rpc error: code = Aborted desc = failed"
-	newStatus := status.Error(codes.Aborted, "failed")
-	err, _ := apierror.FromError(newStatus)
-
-	client.GetSecretReturns(secret, nil)
-	client.AddSecretVersionReturns(nil, err)
-
-	expect := p.SetSecret(context.TODO(), nil, pushRemoteRef)
-	if assert.Error(t, expect) {
-		assert.Equal(t, expect.Error(), expectedErr)
-	}
-}
-
-func TestSetSecretAccessSecretVersion(t *testing.T) {
-	client := newClient()
-	pushRemoteRef := newPushRemoteRef()
-	secret := newSecret()
-	p := newProvider(client)
-
-	expectedErr := "rpc error: code = Aborted desc = failed"
-	newStatus := status.Error(codes.Aborted, "failed")
-	err, _ := apierror.FromError(newStatus)
-
-	client.AccessSecretVersionReturns(nil, err)
-	client.GetSecretReturns(nil, err)
-	client.CreateSecretReturns(secret, nil)
-
-	expect := p.SetSecret(context.Background(), nil, pushRemoteRef)
-	if assert.Error(t, expect) {
-		assert.Equal(t, expect.Error(), expectedErr)
-	}
-}
-
 func TestSetSecretGetSecret404(t *testing.T) {
 	client := newClient()
 	pushRemoteRef := newPushRemoteRef()