diff options
author | Shinya Maeda <shinya@gitlab.com> | 2019-06-26 19:29:35 +0700 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2019-07-04 09:53:40 +0700 |
commit | 93be669e16b71a00362187a690e573209d80d960 (patch) | |
tree | 6fc866212596ae5a2fbde9b917ea944363b7f8fa | |
parent | 19dc1105524e3d25821670706a750043775588fa (diff) | |
download | gitlab-ce-refactor-pipeline-errors_message-ce.tar.gz |
Refactor pipeline errors_messagerefactor-pipeline-errors_message-ce
Use the shared method in Ci::Pipeline
-rw-r--r-- | app/models/ci/pipeline.rb | 4 | ||||
-rw-r--r-- | app/services/ci/create_pipeline_service.rb | 2 | ||||
-rw-r--r-- | spec/models/ci/pipeline_spec.rb | 24 |
3 files changed, 29 insertions, 1 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index fd5aa216174..20ca4a9ab24 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -790,6 +790,10 @@ module Ci stages.find_by!(name: name) end + def error_messages + errors ? errors.full_messages.to_sentence : "" + end + private def ci_yaml_from_repo diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb index c17712355af..cdcc4b15bea 100644 --- a/app/services/ci/create_pipeline_service.rb +++ b/app/services/ci/create_pipeline_service.rb @@ -65,7 +65,7 @@ module Ci def execute!(*args, &block) execute(*args, &block).tap do |pipeline| unless pipeline.persisted? - raise CreateError, pipeline.errors.full_messages.join(',') + raise CreateError, pipeline.error_messages end end end diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 55cea48b641..e24bbc39761 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -2998,4 +2998,28 @@ describe Ci::Pipeline, :mailer do end end end + + describe '#error_messages' do + subject { pipeline.error_messages } + + before do + pipeline.valid? + end + + context 'when pipeline has errors' do + let(:pipeline) { build(:ci_pipeline, sha: nil, ref: nil) } + + it 'returns the full error messages' do + is_expected.to eq("Sha can't be blank and Ref can't be blank") + end + end + + context 'when pipeline does not have errors' do + let(:pipeline) { build(:ci_pipeline) } + + it 'returns empty string' do + is_expected.to be_empty + end + end + end end |