summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2016-11-21 17:59:57 +0800
committerLin Jen-Shin <godfat@godfat.org>2016-11-21 18:30:24 +0800
commit1edb1746a51a19fae24c976c329e80a1dbd6062a (patch)
treefa2e92feafd4aebedc57fccf00fc0e22a4cee938
parentca639c9b824d6c8effb620bc71255eb0895ab2cc (diff)
downloadgitlab-ce-1edb1746a51a19fae24c976c329e80a1dbd6062a.tar.gz
Prefer a description for it and split the case:
Feedback: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7508#note_18730091
-rw-r--r--spec/models/ci/pipeline_spec.rb22
-rw-r--r--spec/models/concerns/has_status_spec.rb61
2 files changed, 51 insertions, 32 deletions
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index af619a02ed9..29e5693d5ab 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -403,15 +403,15 @@ describe Ci::Pipeline, models: true do
end
describe '#cancelable?' do
- subject { pipeline.cancelable? }
-
%i[created running pending].each do |status|
context "when there is a build #{status}" do
before do
create(:ci_build, status, pipeline: pipeline)
end
- it { is_expected.to be_truthy }
+ it 'is cancelable' do
+ expect(pipeline.cancelable?).to be_truthy
+ end
end
context "when there is an external job #{status}" do
@@ -419,7 +419,9 @@ describe Ci::Pipeline, models: true do
create(:generic_commit_status, status, pipeline: pipeline)
end
- it { is_expected.to be_truthy }
+ it 'is cancelable' do
+ expect(pipeline.cancelable?).to be_truthy
+ end
end
%i[success failed canceled].each do |status2|
@@ -430,7 +432,9 @@ describe Ci::Pipeline, models: true do
create(build.sample, status2, pipeline: pipeline)
end
- it { is_expected.to be_truthy }
+ it 'is cancelable' do
+ expect(pipeline.cancelable?).to be_truthy
+ end
end
end
end
@@ -441,7 +445,9 @@ describe Ci::Pipeline, models: true do
create(:ci_build, status, pipeline: pipeline)
end
- it { is_expected.to be_falsey }
+ it 'is not cancelable' do
+ expect(pipeline.cancelable?).to be_falsey
+ end
end
context "when there is an external job #{status}" do
@@ -449,7 +455,9 @@ describe Ci::Pipeline, models: true do
create(:generic_commit_status, status, pipeline: pipeline)
end
- it { is_expected.to be_falsey }
+ it 'is not cancelable' do
+ expect(pipeline.cancelable?).to be_falsey
+ end
end
end
end
diff --git a/spec/models/concerns/has_status_spec.rb b/spec/models/concerns/has_status_spec.rb
index 24cd435256e..788c84bf5de 100644
--- a/spec/models/concerns/has_status_spec.rb
+++ b/spec/models/concerns/has_status_spec.rb
@@ -134,20 +134,20 @@ describe HasStatus do
let!(:job) { create(type, status) }
describe ".#{status}" do
- subject { CommitStatus.public_send(status).all }
-
- it { is_expected.to contain_exactly(job) }
+ it 'contains the job' do
+ expect(CommitStatus.public_send(status).all).
+ to contain_exactly(job)
+ end
end
describe '.relevant' do
- subject { CommitStatus.relevant.all }
-
- it do
- case status
- when :created
- is_expected.to be_empty
- else
- is_expected.to contain_exactly(job)
+ if status == :created
+ it 'contains nothing' do
+ expect(CommitStatus.relevant.all).to be_empty
+ end
+ else
+ it 'contains the job' do
+ expect(CommitStatus.relevant.all).to contain_exactly(job)
end
end
end
@@ -161,17 +161,22 @@ describe HasStatus do
end
context 'for scope with more statuses' do
- shared_examples 'having a job' do |type, status, excluded_status|
+ shared_examples 'containing the job' do |type, status|
context "when it's #{status} #{type} job" do
let!(:job) { create(type, status) }
- it do
- case status
- when excluded_status
- is_expected.to be_empty
- else
- is_expected.to contain_exactly(job)
- end
+ it 'contains the job' do
+ is_expected.to contain_exactly(job)
+ end
+ end
+ end
+
+ shared_examples 'not containing the job' do |type, status|
+ context "when it's #{status} #{type} job" do
+ let!(:job) { create(type, status) }
+
+ it 'contains nothing' do
+ is_expected.to be_empty
end
end
end
@@ -179,25 +184,31 @@ describe HasStatus do
describe '.running_or_pending' do
subject { CommitStatus.running_or_pending }
- %i[running pending created].each do |status|
- it_behaves_like 'having a job', random_type, status, :created
+ %i[running pending].each do |status|
+ it_behaves_like 'containing the job', random_type, status
end
+
+ it_behaves_like 'not containing the job', random_type, :created
end
describe '.finished' do
subject { CommitStatus.finished }
- %i[success failed canceled created].each do |status|
- it_behaves_like 'having a job', random_type, status, :created
+ %i[success failed canceled].each do |status|
+ it_behaves_like 'containing the job', random_type, status
end
+
+ it_behaves_like 'not containing the job', random_type, :created
end
describe '.cancelable' do
subject { CommitStatus.cancelable }
- %i[running pending created failed].each do |status|
- it_behaves_like 'having a job', random_type, status, :failed
+ %i[running pending created].each do |status|
+ it_behaves_like 'containing the job', random_type, status
end
+
+ it_behaves_like 'not containing the job', random_type, :failed
end
end
end