45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Ci::Group, models: true do
|
||
|
subject do
|
||
|
described_class.new('test', name: 'rspec', jobs: jobs)
|
||
|
end
|
||
|
|
||
|
let!(:jobs) { build_list(:ci_build, 1, :success) }
|
||
|
|
||
|
it { is_expected.to include_module(StaticModel) }
|
||
|
|
||
|
it { is_expected.to respond_to(:stage) }
|
||
|
it { is_expected.to respond_to(:name) }
|
||
|
it { is_expected.to respond_to(:jobs) }
|
||
|
it { is_expected.to respond_to(:status) }
|
||
|
|
||
|
describe '#size' do
|
||
|
it 'returns the number of statuses in the group' do
|
||
|
expect(subject.size).to eq(1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#detailed_status' do
|
||
|
context 'when there is only one item in the group' do
|
||
|
it 'calls the status from the object itself' do
|
||
|
expect(jobs.first).to receive(:detailed_status)
|
||
|
|
||
|
expect(subject.detailed_status(double(:user)))
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when there are more than one commit status in the group' do
|
||
|
let(:jobs) do
|
||
|
[create(:ci_build, :failed),
|
||
|
create(:ci_build, :success)]
|
||
|
end
|
||
|
|
||
|
it 'fabricates a new detailed status object' do
|
||
|
expect(subject.detailed_status(double(:user)))
|
||
|
.to be_a(Gitlab::Ci::Status::Failed)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|