41 lines
1.4 KiB
Ruby
41 lines
1.4 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Ci::Status do
|
|
describe '.get_status' do
|
|
subject { described_class.get_status(statuses) }
|
|
|
|
[:ci_build, :generic_commit_status].each do |type|
|
|
context "for #{type}" do
|
|
context 'all successful' do
|
|
let(:statuses) { Array.new(2) { create(type, status: :success) } }
|
|
it { is_expected.to eq 'success' }
|
|
end
|
|
|
|
context 'at least one failed' do
|
|
let(:statuses) { [create(type, status: :success), create(type, status: :failed)] }
|
|
it { is_expected.to eq 'failed' }
|
|
end
|
|
|
|
context 'at least one running' do
|
|
let(:statuses) { [create(type, status: :success), create(type, status: :running)] }
|
|
it { is_expected.to eq 'running' }
|
|
end
|
|
|
|
context 'at least one pending' do
|
|
let(:statuses) { [create(type, status: :success), create(type, status: :pending)] }
|
|
it { is_expected.to eq 'running' }
|
|
end
|
|
|
|
context 'success and failed but allowed to fail' do
|
|
let(:statuses) { [create(type, status: :success), create(type, status: :failed, allow_failure: true)] }
|
|
it { is_expected.to eq 'success' }
|
|
end
|
|
|
|
context 'one failed but allowed to fail' do
|
|
let(:statuses) { [create(type, status: :failed, allow_failure: true)] }
|
|
it { is_expected.to eq 'success' }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|