|
1 |
| -package vault_plugin_secrets_tencentcloud |
| 1 | +package tencentcloud |
2 | 2 |
|
3 | 3 | import (
|
4 | 4 | "context"
|
5 | 5 | "os"
|
6 |
| - "strings" |
7 | 6 | "testing"
|
8 | 7 | "time"
|
9 | 8 |
|
10 |
| - "github.com/hashicorp/vault-plugin-secrets-tencentcloud/sdk" |
11 | 9 | "github.com/hashicorp/vault/sdk/logical"
|
12 | 10 | )
|
13 | 11 |
|
14 |
| -func newAcceptanceTestEnv(t *testing.T) (*testEnv, error) { |
15 |
| - id := os.Getenv("TENCENTCLOUD_SECRET_ID") |
16 |
| - if id == "" { |
17 |
| - t.Fatal("miss TENCENTCLOUD_SECRET_ID") |
18 |
| - } |
19 |
| - |
20 |
| - key := os.Getenv("TENCENTCLOUD_SECRET_KEY") |
21 |
| - if key == "" { |
22 |
| - t.Fatal("miss TENCENTCLOUD_SECRET_KEY") |
23 |
| - } |
24 |
| - |
25 |
| - arn := os.Getenv("TENCENTCLOUD_ARN") |
26 |
| - if arn == "" { |
27 |
| - t.Fatal("miss TENCENTCLOUD_ARN") |
28 |
| - } |
29 |
| - |
30 |
| - b := newBackend(&sdk.LogRoundTripper{Debug: true}) |
31 |
| - conf := &logical.BackendConfig{ |
32 |
| - System: &logical.StaticSystemView{ |
33 |
| - DefaultLeaseTTLVal: 7200 * time.Second, |
34 |
| - MaxLeaseTTLVal: 7200 * time.Second, |
35 |
| - }, |
36 |
| - } |
37 |
| - if err := b.Setup(context.Background(), conf); err != nil { |
38 |
| - return nil, err |
39 |
| - } |
40 |
| - |
41 |
| - return &testEnv{ |
42 |
| - AccessKey: id, |
43 |
| - SecretKey: key, |
44 |
| - RoleARN: arn, |
45 |
| - Backend: b, |
46 |
| - Context: context.Background(), |
47 |
| - Storage: &logical.InmemStorage{}, |
48 |
| - }, nil |
49 |
| -} |
50 |
| - |
51 |
| -func runAcceptanceTest() bool { |
52 |
| - env := strings.ToLower(os.Getenv("VAULT_ACC")) |
53 |
| - |
54 |
| - return env == "1" || env == "true" |
55 |
| -} |
56 |
| - |
57 |
| -func TestAcceptanceConfig(t *testing.T) { |
58 |
| - if !runAcceptanceTest() { |
59 |
| - t.SkipNow() |
60 |
| - } |
61 |
| - |
62 |
| - t.Parallel() |
63 |
| - |
64 |
| - acceptanceTestEnv, err := newAcceptanceTestEnv(t) |
65 |
| - if err != nil { |
66 |
| - t.Fatal(err) |
67 |
| - } |
| 12 | +const ( |
| 13 | + envVarRunAccTests = "VAULT_ACC" |
| 14 | + envVarSecretId = "TENCENTCLOUD_SECRET_ID" |
| 15 | + envVarSecretKey = "TENCENTCLOUD_SECRET_KEY" |
| 16 | + envVarRoleARN = "TENCENTCLOUD_ROLE_ARN" |
| 17 | +) |
68 | 18 |
|
69 |
| - t.Run("add config", acceptanceTestEnv.AddConfig) |
70 |
| - t.Run("read config", acceptanceTestEnv.ReadConfig) |
71 |
| - t.Run("update config", acceptanceTestEnv.UpdateConfig) |
72 |
| - t.Run("read updated config", acceptanceTestEnv.ReadUpdatedConfig) |
73 |
| - t.Run("delete config", acceptanceTestEnv.DeleteConfig) |
74 |
| - t.Run("read empty config", acceptanceTestEnv.ReadEmptyConfig) |
75 |
| -} |
| 19 | +var runAcceptanceTests = os.Getenv(envVarRunAccTests) == "1" |
76 | 20 |
|
77 |
| -func TestAcceptanceCamUserCreds(t *testing.T) { |
78 |
| - if !runAcceptanceTest() { |
| 21 | +func TestAcceptanceDynamicPolicyBasedCreds(t *testing.T) { |
| 22 | + if !runAcceptanceTests { |
79 | 23 | t.SkipNow()
|
80 | 24 | }
|
81 | 25 |
|
82 |
| - t.Parallel() |
83 |
| - |
84 |
| - acceptanceTestEnv, err := newAcceptanceTestEnv(t) |
| 26 | + acceptanceTestEnv, err := newAcceptanceTestEnv() |
85 | 27 | if err != nil {
|
86 | 28 | t.Fatal(err)
|
87 | 29 | }
|
88 | 30 |
|
89 | 31 | t.Run("add config", acceptanceTestEnv.AddConfig)
|
90 |
| - |
91 |
| - t.Run("add policy-based role", acceptanceTestEnv.AddPolicyBasedRole) |
92 |
| - t.Run("read policy-based role", acceptanceTestEnv.ReadPolicyBasedRole) |
93 |
| - t.Run("update policy-based role", acceptanceTestEnv.UpdatePolicyBasedRole) |
94 |
| - t.Run("read updated policy-based role", acceptanceTestEnv.ReadUpdatedPolicyBasedRole) |
95 |
| - t.Run("delete policy-based role", acceptanceTestEnv.DeletePolicyBasedRole) |
96 |
| - |
97 | 32 | t.Run("add policy-based role", acceptanceTestEnv.AddPolicyBasedRole)
|
98 | 33 | t.Run("read policy-based creds", acceptanceTestEnv.ReadPolicyBasedCreds)
|
99 | 34 | t.Run("renew policy-based creds", acceptanceTestEnv.RenewPolicyBasedCreds)
|
100 | 35 | t.Run("revoke policy-based creds", acceptanceTestEnv.RevokePolicyBasedCreds)
|
101 | 36 | }
|
102 | 37 |
|
103 |
| -func TestAcceptanceAssumedRoleBasedCreds(t *testing.T) { |
104 |
| - if !runAcceptanceTest() { |
| 38 | +func TestAcceptanceDynamicRoleBasedCreds(t *testing.T) { |
| 39 | + if !runAcceptanceTests { |
105 | 40 | t.SkipNow()
|
106 | 41 | }
|
107 | 42 |
|
108 |
| - t.Parallel() |
109 |
| - |
110 |
| - acceptanceTestEnv, err := newAcceptanceTestEnv(t) |
| 43 | + acceptanceTestEnv, err := newAcceptanceTestEnv() |
111 | 44 | if err != nil {
|
112 | 45 | t.Fatal(err)
|
113 | 46 | }
|
114 | 47 |
|
115 | 48 | t.Run("add config", acceptanceTestEnv.AddConfig)
|
116 |
| - |
117 |
| - t.Run("add arn-based role", acceptanceTestEnv.AddARNBasedRole) |
118 |
| - t.Run("read arn-based role", acceptanceTestEnv.ReadARNBasedRole) |
119 |
| - t.Run("update arn-based role", acceptanceTestEnv.UpdateARNBasedRole) |
120 |
| - t.Run("read updated arn-based role", acceptanceTestEnv.ReadUpdatedARNBasedRole) |
121 |
| - t.Run("delete arn-based role", acceptanceTestEnv.DeleteARNBasedRole) |
122 |
| - |
123 | 49 | t.Run("add arn-based role", acceptanceTestEnv.AddARNBasedRole)
|
124 | 50 | t.Run("read arn-based creds", acceptanceTestEnv.ReadARNBasedCreds)
|
125 | 51 | t.Run("renew arn-based creds", acceptanceTestEnv.RenewARNBasedCreds)
|
126 | 52 | t.Run("revoke arn-based creds", acceptanceTestEnv.RevokeARNBasedCreds)
|
127 | 53 | }
|
128 | 54 |
|
129 |
| -func TestAcceptanceMultiRoles(t *testing.T) { |
130 |
| - if !runAcceptanceTest() { |
131 |
| - t.SkipNow() |
| 55 | +func newAcceptanceTestEnv() (*testEnv, error) { |
| 56 | + ctx := context.Background() |
| 57 | + conf := &logical.BackendConfig{ |
| 58 | + System: &logical.StaticSystemView{ |
| 59 | + DefaultLeaseTTLVal: time.Hour, |
| 60 | + MaxLeaseTTLVal: time.Hour, |
| 61 | + }, |
132 | 62 | }
|
133 |
| - |
134 |
| - t.Parallel() |
135 |
| - |
136 |
| - acceptanceTestEnv, err := newAcceptanceTestEnv(t) |
| 63 | + b, err := Factory(ctx, conf) |
137 | 64 | if err != nil {
|
138 |
| - t.Fatal(err) |
| 65 | + return nil, err |
139 | 66 | }
|
140 |
| - |
141 |
| - t.Run("add config", acceptanceTestEnv.AddConfig) |
142 |
| - |
143 |
| - t.Run("add policy-based role", acceptanceTestEnv.AddPolicyBasedRole) |
144 |
| - t.Run("read policy-based role", acceptanceTestEnv.ReadPolicyBasedRole) |
145 |
| - |
146 |
| - t.Run("add arn-based role", acceptanceTestEnv.AddARNBasedRole) |
147 |
| - t.Run("read arn-based creds", acceptanceTestEnv.ReadARNBasedCreds) |
148 |
| - |
149 |
| - t.Run("list two roles", acceptanceTestEnv.ListTwoRoles) |
150 |
| - t.Run("delete arn-based role", acceptanceTestEnv.DeleteARNBasedRole) |
151 |
| - t.Run("list one role", acceptanceTestEnv.ListOneRole) |
| 67 | + return &testEnv{ |
| 68 | + SecretId: os.Getenv(envVarSecretId), |
| 69 | + SecretKey: os.Getenv(envVarSecretKey), |
| 70 | + RoleARN: os.Getenv(envVarRoleARN), |
| 71 | + Backend: b, |
| 72 | + Context: ctx, |
| 73 | + Storage: &logical.InmemStorage{}, |
| 74 | + }, nil |
152 | 75 | }
|
0 commit comments