Skip to content

Commit 7ca7813

Browse files
committed
addressed comments in tests
1 parent c3c2e09 commit 7ca7813

File tree

1 file changed

+31
-47
lines changed

1 file changed

+31
-47
lines changed

confmap/provider/googlesecretmanagerprovider/provider_test.go

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,32 @@ package googlesecretmanagerprovider
55

66
import (
77
"context"
8-
"errors"
8+
"fmt"
99
"testing"
1010

1111
"cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
1212
gax "github.com/googleapis/gax-go/v2"
1313
"github.com/stretchr/testify/require"
1414
"go.opentelemetry.io/collector/confmap"
15+
"google.golang.org/grpc/codes"
1516
)
1617

17-
// Define a mock secretsManagerClient for testing
18-
type mockSecretsManagerClient struct {
19-
err error
20-
secretString string
18+
var validSecrets = map[string]string{
19+
"projects/my-project/secrets/secret-1/versions/1": "secret-1",
20+
"projects/my-project/secrets/secret-2/versions/1": "secret-2",
2121
}
2222

23+
// Define a mock secretsManagerClient for testing
24+
type mockSecretsManagerClient struct{}
25+
2326
func (m *mockSecretsManagerClient) AccessSecretVersion(ctx context.Context, req *secretmanagerpb.AccessSecretVersionRequest, opts ...gax.CallOption) (*secretmanagerpb.AccessSecretVersionResponse, error) {
24-
if m.err != nil {
25-
return nil, m.err
27+
secretString, ok := validSecrets[req.Name]
28+
if !ok {
29+
return nil, fmt.Errorf("secrets entry does not exist, error code: %v", codes.NotFound)
2630
}
2731
return &secretmanagerpb.AccessSecretVersionResponse{
2832
Payload: &secretmanagerpb.SecretPayload{
29-
Data: []byte(m.secretString),
33+
Data: []byte(secretString),
3034
},
3135
}, nil
3236
}
@@ -43,13 +47,10 @@ func TestProvider_Retrieve_Success(t *testing.T) {
4347
wantSecret string
4448
}{
4549
{
46-
name: "Happy path: valid uri, secret entry exists and is accessible",
47-
uri: schemeName + ":projects/my-project/secrets/test-secret-id/versions/1",
48-
testSecretManager: &mockSecretsManagerClient{
49-
err: nil,
50-
secretString: "test-secret-value",
51-
},
52-
wantSecret: "test-secret-value",
50+
name: "Happy path: valid uri, secret entry exists and is accessible",
51+
uri: schemeName + ":projects/my-project/secrets/secret-1/versions/1",
52+
testSecretManager: &mockSecretsManagerClient{},
53+
wantSecret: "secret-1",
5354
},
5455
}
5556

@@ -58,18 +59,13 @@ func TestProvider_Retrieve_Success(t *testing.T) {
5859
testProvider := &provider{
5960
client: tc.testSecretManager,
6061
}
61-
defer testProvider.client.Close()
6262
gotSecret, err := testProvider.Retrieve(context.Background(), tc.uri, nil)
63-
if err != nil {
64-
t.Errorf("%v: Retrieve() gotError = %v, want nil error", tc.name, err)
65-
}
63+
require.NoError(t, err)
64+
6665
gotSecretString, err := gotSecret.AsString()
67-
if err != nil {
68-
t.Errorf("%v: failed to retrieve the string value of the secret, error: %v", tc.name, err)
69-
}
70-
if gotSecretString != tc.wantSecret {
71-
t.Errorf("%v: Retrieve() gotSecret = %v, want %v", tc.name, gotSecret, tc.wantSecret)
72-
}
66+
require.NoError(t, err)
67+
require.Equal(t, tc.wantSecret, gotSecretString)
68+
7369
})
7470
}
7571
}
@@ -81,28 +77,19 @@ func TestProvider_Retrieve_Failure(t *testing.T) {
8177
testSecretManager *mockSecretsManagerClient
8278
}{
8379
{
84-
name: "Invalid scheme",
85-
uri: "invalidscheme" + ":projects/my-project/secrets/test-secret-id/versions/1",
86-
testSecretManager: &mockSecretsManagerClient{
87-
err: errors.New("invalid scheme"),
88-
secretString: "test-secret-value",
89-
},
80+
name: "Invalid scheme",
81+
uri: "invalidscheme" + ":projects/my-project/secrets/test-secret-id/versions/1",
82+
testSecretManager: &mockSecretsManagerClient{},
9083
},
9184
{
92-
name: "secret entry does not exist in the secret manager",
93-
uri: schemeName + ":projects/my-project/secrets/non-existent/versions/1",
94-
testSecretManager: &mockSecretsManagerClient{
95-
err: errors.New("secret entry does not exist"),
96-
secretString: "test-secret-value",
97-
},
85+
name: "secret entry does not exist in the secret manager",
86+
uri: schemeName + ":projects/my-project/secrets/non-existent/versions/1",
87+
testSecretManager: &mockSecretsManagerClient{},
9888
},
9989
{
100-
name: "invalid secret name",
101-
uri: schemeName + ":projects/my-project/invalid-secret/test-secret-id/versions/1",
102-
testSecretManager: &mockSecretsManagerClient{
103-
err: errors.New("secret name is invalid"),
104-
secretString: "test-secret-value",
105-
},
90+
name: "invalid secret name",
91+
uri: schemeName + ":projects/my-project/versions/1",
92+
testSecretManager: &mockSecretsManagerClient{},
10693
},
10794
}
10895

@@ -111,11 +98,8 @@ func TestProvider_Retrieve_Failure(t *testing.T) {
11198
testProvider := &provider{
11299
client: tc.testSecretManager,
113100
}
114-
defer testProvider.client.Close()
115101
_, err := testProvider.Retrieve(context.Background(), tc.uri, nil)
116-
if err == nil {
117-
t.Errorf("%v: Retrieve() got nil error, want non-nil error", tc.name)
118-
}
102+
require.Error(t, err)
119103
})
120104
}
121105
}

0 commit comments

Comments
 (0)