summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2019-07-04 13:04:29 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2019-07-04 13:04:29 +0000
commit56af0bfd9e4f1895d2060e1fcb9c0885d1f3b024 (patch)
tree96bd416f4937f26cea7c06728394d84f41c7cc81
parent7b315ed6cef6912ec61ad85fa391cf7a9b1ea78d (diff)
parent93be669e16b71a00362187a690e573209d80d960 (diff)
downloadgitlab-ce-56af0bfd9e4f1895d2060e1fcb9c0885d1f3b024.tar.gz
Merge branch 'refactor-pipeline-errors_message-ce' into 'master'
CE Port: Refactor pipeline errors_message See merge request gitlab-org/gitlab-ce!30116
-rw-r--r--app/models/ci/pipeline.rb4
-rw-r--r--app/services/ci/create_pipeline_service.rb2
-rw-r--r--spec/models/ci/pipeline_spec.rb24
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