diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2016-11-21 17:59:57 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2016-11-21 18:30:24 +0800 |
commit | 1edb1746a51a19fae24c976c329e80a1dbd6062a (patch) | |
tree | fa2e92feafd4aebedc57fccf00fc0e22a4cee938 | |
parent | ca639c9b824d6c8effb620bc71255eb0895ab2cc (diff) | |
download | gitlab-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.rb | 22 | ||||
-rw-r--r-- | spec/models/concerns/has_status_spec.rb | 61 |
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 |