Skip to content

Commit 18e747a

Browse files
committed
add test for GET /v3/apps/:guid/environment_variables when the encryption_key_label is invalid
1 parent e90425e commit 18e747a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

spec/request/apps_spec.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3398,6 +3398,38 @@
33983398
end
33993399
end
34003400
end
3401+
3402+
context 'when the encryption_key_label is invalid' do
3403+
let(:instance) { VCAP::CloudController::ManagedServiceInstance.make(space:) }
3404+
let(:app_binding) do
3405+
VCAP::CloudController::ServiceBinding.make(
3406+
app: app_model,
3407+
service_instance_guid: instance.guid,
3408+
credentials: { key: 'value' },
3409+
syslog_drain_url: 'syslog-url',
3410+
volume_mounts: %w[volume1 volume2]
3411+
)
3412+
end
3413+
3414+
before do
3415+
VCAP::CloudController::Encryptor.database_encryption_keys = {
3416+
encryption_key_0: 'somevalidkeyvalue',
3417+
foo: 'fooencryptionkey',
3418+
death: 'headbangingdeathmetalkey', 'invalid-key-label': 'fakekey'
3419+
}
3420+
allow_any_instance_of(ErrorPresenter).to receive(:raise_500?).and_return(false)
3421+
end
3422+
3423+
it 'fails to decrypt the environment variables and returns a 500 error' do
3424+
app_binding.class.db[:service_bindings].where(id: app_binding.id).update(encryption_key_label: 'invalid-key-label')
3425+
3426+
allow(VCAP::CloudController::Encryptor).to receive(:run_cipher).and_raise(OpenSSL::Cipher::CipherError)
3427+
api_call.call(admin_headers)
3428+
3429+
expect(last_response).to have_status_code(500)
3430+
expect(parsed_response['errors'].first['detail']).to match(/Failed/i)
3431+
end
3432+
end
34013433
end
34023434

34033435
describe 'GET /v3/apps/:guid/permissions' do

0 commit comments

Comments
 (0)