diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-07-30 17:07:34 +0200 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-08-01 12:25:19 +0200 |
commit | 2ebba1ff33bcac341495e6ceb5f44429c55d878f (patch) | |
tree | 158a55919cbc77f93b91964a68f5612597680b72 | |
parent | 8ce4bf20e737482db33f9ad1d37ad8212c6330a0 (diff) | |
download | gitlab-ce-2ebba1ff33bcac341495e6ceb5f44429c55d878f.tar.gz |
Improve Ci::Status::Build specs
-rw-r--r-- | lib/gitlab/ci/status/build/failed.rb | 20 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/status/build/failed_spec.rb | 27 |
2 files changed, 39 insertions, 8 deletions
diff --git a/lib/gitlab/ci/status/build/failed.rb b/lib/gitlab/ci/status/build/failed.rb index e87f5e42aa8..86aa7396c98 100644 --- a/lib/gitlab/ci/status/build/failed.rb +++ b/lib/gitlab/ci/status/build/failed.rb @@ -4,13 +4,13 @@ module Gitlab module Build class Failed < Status::Extended REASONS = { - 'unknown_failure' => 'unknown failure', - 'script_failure' => 'script failure', - 'api_failure' => 'API failure', - 'stuck_or_timeout_failure' => 'stuck or timeout failure', - 'runner_system_failure' => 'runner system failure', - 'missing_dependency_failure' => 'missing dependency failure', - # COMMENTED to check if CI fails: 'runner_unsupported' => 'unsuported runner', + unknown_failure: 'unknown failure', + script_failure: 'script failure', + api_failure: 'API failure', + stuck_or_timeout_failure: 'stuck or timeout failure', + runner_system_failure: 'runner system failure', + missing_dependency_failure: 'missing dependency failure', + runner_unsupported: 'Your runner is outdated, please upgrade your runner' }.freeze def status_tooltip @@ -32,7 +32,11 @@ module Gitlab end def description - "<br> (#{REASONS[subject.failure_reason]})" + "<br> (#{failure_reason_message})" + end + + def failure_reason_message + REASONS.fetch(subject.failure_reason.to_sym) end end end diff --git a/spec/lib/gitlab/ci/status/build/failed_spec.rb b/spec/lib/gitlab/ci/status/build/failed_spec.rb index cadb424ea2c..b6676b40fd3 100644 --- a/spec/lib/gitlab/ci/status/build/failed_spec.rb +++ b/spec/lib/gitlab/ci/status/build/failed_spec.rb @@ -80,4 +80,31 @@ describe Gitlab::Ci::Status::Build::Failed do end end end + + describe 'covers all failure reasons' do + let(:status) { Gitlab::Ci::Status::Failed.new(build, user) } + let(:tooltip) { subject.status_tooltip } + + CommitStatus.failure_reasons.keys.each do |failure_reason| + context failure_reason do + before do + build.failure_reason = failure_reason + end + + it "is a valid status" do + expect { tooltip }.not_to raise_error + end + end + end + + context 'invalid failure message' do + before do + expect(build).to receive(:failure_reason) { 'invalid failure message' } + end + + it "is an invalid status" do + expect { tooltip }.to raise_error(/key not found:/) + end + end + end end |