diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-14 21:07:40 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-14 21:07:40 +0300 |
commit | d5e16807136445884fd7cc5f71f9f039f823b5d8 (patch) | |
tree | a3e60aa59ac9a83966c7ecda6d8bb9a89adc1fbc | |
parent | 016af097cb1fa872fdc28a786d16315e55cd2701 (diff) |
Add latest changes from gitlab-org/gitlab@master
-rw-r--r-- | app/helpers/icons_helper.rb | 4 | ||||
-rw-r--r-- | app/presenters/ci/pipeline_presenter.rb | 4 | ||||
-rw-r--r-- | spec/helpers/icons_helper_spec.rb | 2 | ||||
-rw-r--r-- | spec/presenters/ci/pipeline_presenter_spec.rb | 18 |
4 files changed, 20 insertions, 8 deletions
diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb index b79766e3a65..cacb4113cb2 100644 --- a/app/helpers/icons_helper.rb +++ b/app/helpers/icons_helper.rb @@ -42,7 +42,7 @@ module IconsHelper end def sprite_icon(icon_name, size: nil, css_class: nil) - unless known_sprites.include?(icon_name) + if known_sprites&.exclude?(icon_name) exception = ArgumentError.new("#{icon_name} is not a known icon in @gitlab-org/gitlab-svg") Gitlab::Sentry.track_and_raise_for_dev_exception(exception) end @@ -156,6 +156,8 @@ module IconsHelper private def known_sprites + return if Rails.env.production? + @known_sprites ||= JSON.parse(File.read(Rails.root.join('node_modules/@gitlab/svgs/dist/icons.json')))['icons'] end end diff --git a/app/presenters/ci/pipeline_presenter.rb b/app/presenters/ci/pipeline_presenter.rb index d81b1e6c522..f01ff56540a 100644 --- a/app/presenters/ci/pipeline_presenter.rb +++ b/app/presenters/ci/pipeline_presenter.rb @@ -8,7 +8,9 @@ module Ci # We use a class method here instead of a constant, allowing EE to redefine # the returned `Hash` more easily. def self.failure_reasons - { config_error: 'CI/CD YAML configuration error!' } + { unknown_failure: 'Unknown pipeline failure!', + config_error: 'CI/CD YAML configuration error!', + external_validation_failure: 'External pipeline validation failed!' } end presents :pipeline diff --git a/spec/helpers/icons_helper_spec.rb b/spec/helpers/icons_helper_spec.rb index f1b1d411e05..5c26db028b7 100644 --- a/spec/helpers/icons_helper_spec.rb +++ b/spec/helpers/icons_helper_spec.rb @@ -76,6 +76,8 @@ describe IconsHelper do it 'does not raise in production mode' do stub_rails_env('production') + expect(File).not_to receive(:read) + expect { sprite_icon(non_existing) }.not_to raise_error end end diff --git a/spec/presenters/ci/pipeline_presenter_spec.rb b/spec/presenters/ci/pipeline_presenter_spec.rb index eca5d3e05fe..fd391478eb4 100644 --- a/spec/presenters/ci/pipeline_presenter_spec.rb +++ b/spec/presenters/ci/pipeline_presenter_spec.rb @@ -62,13 +62,19 @@ describe Ci::PipelinePresenter do end end - context '#failure_reason' do - context 'when pipeline has failure reason' do - it 'represents a failure reason sentence' do - pipeline.failure_reason = :config_error + describe '#failure_reason' do + context 'when pipeline has a failure reason' do + ::Ci::PipelineEnums.failure_reasons.keys.each do |failure_reason| + context "when failure reason is #{failure_reason}" do + before do + pipeline.failure_reason = failure_reason + end - expect(presenter.failure_reason) - .to eq 'CI/CD YAML configuration error!' + it 'represents a failure reason sentence' do + expect(presenter.failure_reason).to be_an_instance_of(String) + expect(presenter.failure_reason).not_to eq(failure_reason.to_s) + end + end end end |