|
41 | 41 | Kitchen::Driver::Ec2.new(config)
|
42 | 42 | end
|
43 | 43 |
|
| 44 | + let(:iam_creds) do |
| 45 | + { |
| 46 | + aws_access_key_id: 'siam_creds_access_keu', |
| 47 | + aws_secret_access_key: 'iam_creds_secret_access_key', |
| 48 | + aws_session_token: 'iam_creds_session_token' |
| 49 | + } |
| 50 | + end |
| 51 | + |
44 | 52 | before do
|
45 | 53 | instance
|
46 | 54 | allow(driver).to receive(:create_server).and_return(server)
|
|
128 | 136 |
|
129 | 137 | end
|
130 | 138 |
|
131 |
| - describe '#iam_creds' do |
132 |
| - let(:iam_creds) do |
133 |
| - { |
134 |
| - aws_access_key_id: 'siam_creds_access_keu', |
135 |
| - aws_secret_access_key: 'iam_creds_secret_access_key', |
136 |
| - aws_session_token: 'iam_creds_session_token' |
137 |
| - } |
| 139 | + context 'When #iam_creds returns values but they should not be used' do |
| 140 | + context 'because :aws_secret_key_id is not set via iam_creds' do |
| 141 | + it 'does not set config[:aws_session_token]' do |
| 142 | + config[:aws_secret_access_key] = 'adifferentsecret' |
| 143 | + allow(driver).to receive(:iam_creds).and_return(iam_creds) |
| 144 | + expect(driver.send(:config)[:aws_session_token]).to be_nil |
| 145 | + end |
| 146 | + end |
| 147 | + |
| 148 | + context 'because :aws_access_key_id is not set via iam_creds' do |
| 149 | + it 'does not set config[:aws_session_token]' do |
| 150 | + allow(driver).to receive(:iam_creds).and_return(iam_creds) |
| 151 | + config[:aws_access_key_id] = 'adifferentsecret' |
| 152 | + expect(driver.send(:config)[:aws_session_token]).to be_nil |
| 153 | + end |
| 154 | + end |
| 155 | + |
| 156 | + context 'because :aws_secret_key_id and :aws_access_key_id are set via iam_creds' do |
| 157 | + it 'does not set config[:aws_session_token]' do |
| 158 | + allow(driver).to receive(:iam_creds).and_return(iam_creds) |
| 159 | + expect(driver.send(:config)[:aws_session_token]).to be_nil |
| 160 | + end |
138 | 161 | end
|
| 162 | + end |
139 | 163 |
|
| 164 | + describe '#iam_creds' do |
140 | 165 | context 'when a metadata service is available' do
|
141 | 166 | before do
|
142 | 167 | allow(Net::HTTP).to receive(:get).with(URI.parse('http://169.254.169.254')).and_return(true)
|
143 | 168 | end
|
144 | 169 |
|
145 | 170 | context 'and #fetch_credentials returns valid iam credentials' do
|
146 |
| - context 'when :aws_secret_key_id is not set via iam_creds' do |
147 |
| - it 'does not set config[:aws_session_token] based on iam_creds' do |
148 |
| - config[:aws_secret_access_key] = 'adifferentsecret' |
149 |
| - allow(driver).to receive(:fetch_credentials).and_return(iam_creds) |
150 |
| - expect(driver.send(:config)[:aws_session_token]).to be_nil |
151 |
| - end |
152 |
| - end |
153 |
| - |
154 |
| - context 'when :aws_access_key_id is not set via iam_creds' do |
155 |
| - it 'does not set config[:aws_session_token] based on iam_creds' do |
156 |
| - allow(driver).to receive(:fetch_credentials).and_return(iam_creds) |
157 |
| - config[:aws_access_key_id] = 'adifferentsecret' |
158 |
| - expect(driver.send(:config)[:aws_session_token]).to be_nil |
159 |
| - end |
160 |
| - end |
161 |
| - |
162 |
| - context 'when :aws_secret_key_id and :aws_access_key_id are set via iam_creds' do |
163 |
| - it 'uses :aws_session_token from iam_creds' do |
164 |
| - allow(driver).to receive(:fetch_credentials).and_return(iam_creds) |
165 |
| - expect(driver.send(:config)[:aws_session_token]).to eq(iam_creds[:aws_session_token]) |
166 |
| - end |
| 171 | + it '#iam_creds retuns the iam credentials from fetch_credentials' do |
| 172 | + allow(driver).to receive(:fetch_credentials).and_return(iam_creds) |
| 173 | + expect(driver.send(:iam_creds)).to eq(iam_creds) |
167 | 174 | end
|
168 | 175 | end
|
169 | 176 |
|
|
0 commit comments