second first commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"floci-sdk-test-go/internal/testutil"
|
||||
|
||||
"github.com/aws/aws-sdk-go-v2/aws"
|
||||
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSecretsManager(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
svc := testutil.SecretsManagerClient()
|
||||
secretName := "go-test/creds"
|
||||
secretVal := `{"username":"admin","password":"s3cret"}`
|
||||
var secretARN string
|
||||
|
||||
t.Cleanup(func() {
|
||||
if secretARN != "" {
|
||||
svc.DeleteSecret(ctx, &secretsmanager.DeleteSecretInput{
|
||||
SecretId: aws.String(secretARN),
|
||||
ForceDeleteWithoutRecovery: aws.Bool(true),
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("CreateSecret", func(t *testing.T) {
|
||||
r, err := svc.CreateSecret(ctx, &secretsmanager.CreateSecretInput{
|
||||
Name: aws.String(secretName),
|
||||
SecretString: aws.String(secretVal),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
secretARN = aws.ToString(r.ARN)
|
||||
assert.NotEmpty(t, secretARN)
|
||||
})
|
||||
|
||||
t.Run("GetSecretValue", func(t *testing.T) {
|
||||
r, err := svc.GetSecretValue(ctx, &secretsmanager.GetSecretValueInput{
|
||||
SecretId: aws.String(secretARN),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, secretVal, aws.ToString(r.SecretString))
|
||||
})
|
||||
|
||||
t.Run("DescribeSecret", func(t *testing.T) {
|
||||
_, err := svc.DescribeSecret(ctx, &secretsmanager.DescribeSecretInput{
|
||||
SecretId: aws.String(secretARN),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("ListSecrets", func(t *testing.T) {
|
||||
r, err := svc.ListSecrets(ctx, &secretsmanager.ListSecretsInput{})
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, r.SecretList)
|
||||
})
|
||||
|
||||
t.Run("PutSecretValue", func(t *testing.T) {
|
||||
newVal := `{"username":"admin","password":"n3wsecret"}`
|
||||
_, err := svc.PutSecretValue(ctx, &secretsmanager.PutSecretValueInput{
|
||||
SecretId: aws.String(secretARN),
|
||||
SecretString: aws.String(newVal),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("DeleteSecret", func(t *testing.T) {
|
||||
_, err := svc.DeleteSecret(ctx, &secretsmanager.DeleteSecretInput{
|
||||
SecretId: aws.String(secretARN),
|
||||
ForceDeleteWithoutRecovery: aws.Bool(true),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
secretARN = "" // Prevent double cleanup
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user