Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-14 21:07:40 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-14 21:07:40 +0300
commitd5e16807136445884fd7cc5f71f9f039f823b5d8 (patch)
treea3e60aa59ac9a83966c7ecda6d8bb9a89adc1fbc
parent016af097cb1fa872fdc28a786d16315e55cd2701 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--app/helpers/icons_helper.rb4
-rw-r--r--app/presenters/ci/pipeline_presenter.rb4
-rw-r--r--spec/helpers/icons_helper_spec.rb2
-rw-r--r--spec/presenters/ci/pipeline_presenter_spec.rb18
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