diff options
Diffstat (limited to 'spec/models/ci/build_spec.rb')
-rw-r--r-- | spec/models/ci/build_spec.rb | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index f1d51324bbf..5ff9b4dd493 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -2464,7 +2464,7 @@ RSpec.describe Ci::Build do end before do - allow(Gitlab::Ci::Jwt).to receive(:for_build).with(build).and_return('ci.job.jwt') + allow(Gitlab::Ci::Jwt).to receive(:for_build).and_return('ci.job.jwt') build.set_token('my-token') build.yaml_variables = [] end @@ -2482,12 +2482,17 @@ RSpec.describe Ci::Build do end context 'when CI_JOB_JWT generation fails' do - it 'CI_JOB_JWT is not included' do - expect(Gitlab::Ci::Jwt).to receive(:for_build).and_raise(OpenSSL::PKey::RSAError, 'Neither PUB key nor PRIV key: not enough data') - expect(Gitlab::ErrorTracking).to receive(:track_exception) - - expect { subject }.not_to raise_error - expect(subject.pluck(:key)).not_to include('CI_JOB_JWT') + [ + OpenSSL::PKey::RSAError, + Gitlab::Ci::Jwt::NoSigningKeyError + ].each do |reason_to_fail| + it 'CI_JOB_JWT is not included' do + expect(Gitlab::Ci::Jwt).to receive(:for_build).and_raise(reason_to_fail) + expect(Gitlab::ErrorTracking).to receive(:track_exception) + + expect { subject }.not_to raise_error + expect(subject.pluck(:key)).not_to include('CI_JOB_JWT') + end end end |