@@ -26,8 +26,40 @@ module Vault
26
26
end
27
27
28
28
describe ".token" do
29
+ it "uses ENV['VAULT_TOKEN'] if present" do
30
+ with_stubbed_env ( "VAULT_TOKEN" => "testing" ) do
31
+ expect ( Defaults . token ) . to eq ( "testing" )
32
+ end
33
+ end
34
+
35
+ it "delegates to fetch_from_disk if ENV['VAULT_TOKEN'] is not present" do
36
+ with_stubbed_env ( "VAULT_TOKEN" => nil ) do
37
+ allow ( Defaults ) . to receive ( :fetch_from_disk ) . with ( "VAULT_TOKEN_FILE" ) . and_return ( "fetch_from_disk_token" )
38
+ expect ( Defaults . token ) . to eq ( "fetch_from_disk_token" )
39
+ expect ( Defaults ) . to have_received ( :fetch_from_disk )
40
+ end
41
+ end
42
+
43
+ it "prefers the environment over local token" do
44
+ with_stubbed_env ( "VAULT_TOKEN" => "testing2" ) do
45
+ allow ( Defaults ) . to receive ( :fetch_from_disk )
46
+ expect ( Defaults . token ) . to eq ( "testing2" )
47
+ expect ( Defaults ) . to_not have_received ( :fetch_from_disk )
48
+ end
49
+ end
50
+
51
+ it "returns nil if ENV['VAULT_TOKEN'] is not present and fetch_from_disk return nil" do
52
+ with_stubbed_env ( "VAULT_TOKEN" => nil ) do
53
+ allow ( Defaults ) . to receive ( :fetch_from_disk ) . and_return ( nil )
54
+ expect ( Defaults . token ) . to be_nil
55
+ end
56
+ end
57
+ end
58
+
59
+ describe ".fetch_from_disk" do
29
60
let ( :token ) { File . expand_path ( "~/.vault-token" ) }
30
61
let ( :backup_token ) { File . expand_path ( "~/.vault-token.old" ) }
62
+ let ( :custom_token_path ) { File . expand_path ( "~/custom_token_path" ) }
31
63
32
64
before do
33
65
if File . exist? ( token )
@@ -41,21 +73,23 @@ module Vault
41
73
end
42
74
end
43
75
44
- it "uses ~/.vault-token when present" do
45
- File . open ( token , "w" ) { |f | f . write ( "testing\n " ) }
46
- expect ( Defaults . token ) . to eq ( "testing" )
76
+ it "reads from ENV specified path if present and file is readable" do
77
+ File . open ( custom_token_path , "w" ) { |f | f . write ( "token_from_custom_path\n " ) }
78
+ with_stubbed_env ( "VAULT_TOKEN_FILE" => custom_token_path ) do
79
+ expect ( Defaults . fetch_from_disk ( "VAULT_TOKEN_FILE" ) ) . to eq ( "token_from_custom_path" )
80
+ end
47
81
end
48
82
49
- it "uses ENV['VAULT_TOKEN'] if present" do
50
- with_stubbed_env ( "VAULT_TOKEN" => "testing" ) do
51
- expect ( Defaults . token ) . to eq ( "testing" )
83
+ it "reads from default path if ENV specified path is not present" do
84
+ File . open ( Defaults ::DEFAULT_VAULT_DISK_TOKEN , "w" ) { |f | f . write ( "default_path_token\n " ) }
85
+ with_stubbed_env ( "VAULT_TOKEN_FILE" => nil ) do
86
+ expect ( Defaults . fetch_from_disk ( "VAULT_TOKEN_FILE" ) ) . to eq ( "default_path_token" )
52
87
end
53
88
end
54
89
55
- it "prefers the environment over local token" do
56
- File . open ( token , "w" ) { |f | f . write ( "testing1\n " ) }
57
- with_stubbed_env ( "VAULT_TOKEN" => "testing2" ) do
58
- expect ( Defaults . token ) . to eq ( "testing2" )
90
+ it "returns nil if no readable file is found" do
91
+ with_stubbed_env ( "VAULT_TOKEN_FILE" => "/non/existent/path" ) do
92
+ expect ( Defaults . fetch_from_disk ( "VAULT_TOKEN_FILE" ) ) . to be_nil
59
93
end
60
94
end
61
95
end
0 commit comments