Extend specs for summary build status
Additional specs cover a case when one of the builds is running but allowed to fail. Previous implementation returned `running` status, which is wrong. This behavior has been changed in 8.5, this commit adds missing specs.
This commit is contained in:
parent
040ae7e3e0
commit
c8b4c874d7
|
@ -4,30 +4,42 @@ describe Ci::Status do
|
||||||
describe '.get_status' do
|
describe '.get_status' do
|
||||||
subject { described_class.get_status(statuses) }
|
subject { described_class.get_status(statuses) }
|
||||||
|
|
||||||
[:ci_build, :generic_commit_status].each do |type|
|
shared_examples 'build status summary' do
|
||||||
context "for #{type}" do
|
|
||||||
context 'all successful' do
|
context 'all successful' do
|
||||||
let(:statuses) { Array.new(2) { create(type, status: :success) } }
|
let(:statuses) { Array.new(2) { create(type, status: :success) } }
|
||||||
it { is_expected.to eq 'success' }
|
it { is_expected.to eq 'success' }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'at least one failed' do
|
context 'at least one failed' do
|
||||||
let(:statuses) { [create(type, status: :success), create(type, status: :failed)] }
|
let(:statuses) do
|
||||||
|
[create(type, status: :success), create(type, status: :failed)]
|
||||||
|
end
|
||||||
|
|
||||||
it { is_expected.to eq 'failed' }
|
it { is_expected.to eq 'failed' }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'at least one running' do
|
context 'at least one running' do
|
||||||
let(:statuses) { [create(type, status: :success), create(type, status: :running)] }
|
let(:statuses) do
|
||||||
|
[create(type, status: :success), create(type, status: :running)]
|
||||||
|
end
|
||||||
|
|
||||||
it { is_expected.to eq 'running' }
|
it { is_expected.to eq 'running' }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'at least one pending' do
|
context 'at least one pending' do
|
||||||
let(:statuses) { [create(type, status: :success), create(type, status: :pending)] }
|
let(:statuses) do
|
||||||
|
[create(type, status: :success), create(type, status: :pending)]
|
||||||
|
end
|
||||||
|
|
||||||
it { is_expected.to eq 'running' }
|
it { is_expected.to eq 'running' }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'success and failed but allowed to fail' do
|
context 'success and failed but allowed to fail' do
|
||||||
let(:statuses) { [create(type, status: :success), create(type, status: :failed, allow_failure: true)] }
|
let(:statuses) do
|
||||||
|
[create(type, status: :success),
|
||||||
|
create(type, status: :failed, allow_failure: true)]
|
||||||
|
end
|
||||||
|
|
||||||
it { is_expected.to eq 'success' }
|
it { is_expected.to eq 'success' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -35,7 +47,25 @@ describe Ci::Status do
|
||||||
let(:statuses) { [create(type, status: :failed, allow_failure: true)] }
|
let(:statuses) { [create(type, status: :failed, allow_failure: true)] }
|
||||||
it { is_expected.to eq 'success' }
|
it { is_expected.to eq 'success' }
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
context 'one finished and second running but allowed to fail' do
|
||||||
|
let(:statuses) do
|
||||||
|
[create(type, status: :success),
|
||||||
|
create(type, status: :running, allow_failure: true)]
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to eq 'running' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'ci build statuses' do
|
||||||
|
let(:type) { :ci_build }
|
||||||
|
it_behaves_like 'build status summary'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'generic commit statuses' do
|
||||||
|
let(:type) { :generic_commit_status }
|
||||||
|
it_behaves_like 'build status summary'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue