@@ -71,11 +71,11 @@ func newHarness(ctx context.Context, t *testing.T) (drivertest.Harness, error) {
7171 enableTransit .Do (func () {
7272 s , err := c .Logical ().Read ("sys/mounts" )
7373 if err != nil {
74- t .Fatal (err , "; run secrets/vault /localvault.sh to start a dev vault container" )
74+ t .Fatal (err , "; run secrets/hashivault /localvault.sh to start a dev vault container" )
7575 }
7676 if _ , ok := s .Data ["transit/" ]; ! ok {
7777 if _ , err := c .Logical ().Write ("sys/mounts/transit" , map [string ]interface {}{"type" : "transit" }); err != nil {
78- t .Fatal (err , "; run secrets/vault /localvault.sh to start a dev vault container" )
78+ t .Fatal (err , "; run secrets/hashivault /localvault.sh to start a dev vault container" )
7979 }
8080 }
8181 })
@@ -144,6 +144,34 @@ func fakeConnectionStringInEnv() func() {
144144 }
145145}
146146
147+ func alternativeConnectionStringEnvVars () func () {
148+ oldURLVal := os .Getenv ("VAULT_ADDR" )
149+ oldTokenVal := os .Getenv ("VAULT_TOKEN" )
150+ os .Setenv ("VAULT_ADDR" , "http://myalternativevaultserver" )
151+ os .Setenv ("VAULT_TOKEN" , "faketoken2" )
152+ return func () {
153+ os .Setenv ("VAULT_ADDR" , oldURLVal )
154+ os .Setenv ("VAULT_TOKEN" , oldTokenVal )
155+ }
156+ }
157+
158+ func unsetConnectionStringEnvVars () func () {
159+ oldURLVal := os .Getenv ("VAULT_ADDR" )
160+ oldTokenVal := os .Getenv ("VAULT_TOKEN" )
161+ oldServerURLVal := os .Getenv ("VAULT_SERVER_URL" )
162+ oldServerTokenVal := os .Getenv ("VAULT_SERVER_TOKEN" )
163+ os .Unsetenv ("VAULT_ADDR" )
164+ os .Unsetenv ("VAULT_TOKEN" )
165+ os .Unsetenv ("VAULT_SERVER_URL" )
166+ os .Unsetenv ("VAULT_SERVER_TOKEN" )
167+ return func () {
168+ os .Setenv ("VAULT_ADDR" , oldURLVal )
169+ os .Setenv ("VAULT_SERVER_URL" , oldServerURLVal )
170+ os .Setenv ("VAULT_TOKEN" , oldTokenVal )
171+ os .Setenv ("VAULT_SERVER_TOKEN" , oldServerTokenVal )
172+ }
173+ }
174+
147175func TestOpenKeeper (t * testing.T ) {
148176 cleanup := fakeConnectionStringInEnv ()
149177 defer cleanup ()
@@ -171,3 +199,55 @@ func TestOpenKeeper(t *testing.T) {
171199 }
172200 }
173201}
202+
203+ func TestGetVaultConnectionDetails (t * testing.T ) {
204+ t .Run ("Test Current Env Vars" , func (t * testing.T ) {
205+ cleanup := fakeConnectionStringInEnv ()
206+ defer cleanup ()
207+
208+ serverUrl , err := getVaultURL ()
209+ if err != nil {
210+ t .Errorf ("got unexpected error: %v" , err )
211+ }
212+ if serverUrl != "http://myvaultserver" {
213+ t .Errorf ("expected 'http://myvaultserver': got %q" , serverUrl )
214+ }
215+
216+ vaultToken := getVaultToken ()
217+ if vaultToken != "faketoken" {
218+ t .Errorf ("export 'faketoken': got %q" , vaultToken )
219+ }
220+ })
221+
222+ t .Run ("Test Alternative Env Vars" , func (t * testing.T ) {
223+ cleanup := alternativeConnectionStringEnvVars ()
224+ defer cleanup ()
225+
226+ serverUrl , err := getVaultURL ()
227+ if err != nil {
228+ t .Errorf ("got unexpected error: %v" , err )
229+ }
230+ if serverUrl != "http://myalternativevaultserver" {
231+ t .Errorf ("export '': got %q" , serverUrl )
232+ }
233+
234+ vaultToken := getVaultToken ()
235+ if vaultToken != "faketoken2" {
236+ t .Errorf ("export 'faketoken2': got %q" , vaultToken )
237+ }
238+ })
239+ t .Run ("Test Unset Env Vars Throws Error" , func (t * testing.T ) {
240+ cleanup := unsetConnectionStringEnvVars ()
241+ defer cleanup ()
242+
243+ serverUrl , err := getVaultURL ()
244+ if err == nil {
245+ t .Errorf ("expected error but got a url: %s" , serverUrl )
246+ }
247+
248+ vaultToken := getVaultToken ()
249+ if vaultToken != "" {
250+ t .Errorf ("export '': got %q" , vaultToken )
251+ }
252+ })
253+ }
0 commit comments