@@ -23,17 +23,23 @@ module Docker
2323 end
2424
2525 describe :setup_environment! do
26+ attr_reader :secret_names
27+ attr_reader :secret_paths
2628 attr_reader :expected_secrets
2729
2830 before do
2931 prefix = Time . now . to_i . to_s
3032 random = Random . new
33+ @secret_names = [ ]
34+ @secret_paths = { }
3135 @expected_secrets = { }
3236 ( 0 ..8 ) . each do |i |
33- secret_name = "secret_#{ prefix } _#{ i } "
34- secret = Base64 . strict_encode64 ( random . bytes ( 128 ) )
35- expected_secrets [ secret_name ] = secret
36- tmpdir_path . join ( secret_name ) . binwrite ( secret )
37+ secret_names << ( secret_name = "secret_#{ prefix } _#{ i } " )
38+ secret_paths [ secret_name ] = ( secret_path = tmpdir_path . join ( secret_name ) )
39+ Base64 . strict_encode64 ( random . bytes ( 128 ) ) . tap do |secret |
40+ expected_secrets [ secret_name ] = secret
41+ secret_path . binwrite ( secret )
42+ end
3743 end
3844 end
3945
@@ -42,12 +48,18 @@ module Docker
4248 end
4349
4450 it 'injects secrets into the environment' do
45- fileglob = "#{ tmpdir_path } /*"
46- Docker ::Secret . setup_environment! ( fileglob )
51+ Docker ::Secret . setup_environment! ( "#{ tmpdir_path } /*" )
4752 expected_secrets . each do |secret_name , secret_value |
4853 expect ( ENV [ secret_name ] ) . to eq ( secret_value )
4954 end
5055 end
56+
57+ it 'skips empty secrets' do
58+ n = secret_names . first
59+ secret_paths [ n ] . binwrite ( '' )
60+ Docker ::Secret . setup_environment! ( "#{ tmpdir_path } /*" )
61+ expect ( ENV [ n ] ) . to be_nil
62+ end
5163 end
5264 end
5365end
0 commit comments