Fix spec. Create scheduled status entry for pipeline
This commit is contained in:
parent
f8e680b786
commit
571a934f29
5 changed files with 34 additions and 27 deletions
|
@ -114,7 +114,7 @@ module HasStatus
|
|||
end
|
||||
|
||||
def blocked?
|
||||
BLOCKED_STATUS == status
|
||||
BLOCKED_STATUS.include?(status)
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -5,6 +5,7 @@ module Gitlab
|
|||
class Factory < Status::Factory
|
||||
def self.extended_statuses
|
||||
[[Status::SuccessWarning,
|
||||
Status::Pipeline::Scheduled,
|
||||
Status::Pipeline::Blocked]]
|
||||
end
|
||||
|
||||
|
|
21
lib/gitlab/ci/status/pipeline/scheduled.rb
Normal file
21
lib/gitlab/ci/status/pipeline/scheduled.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
module Gitlab
|
||||
module Ci
|
||||
module Status
|
||||
module Pipeline
|
||||
class Scheduled < Status::Extended
|
||||
def text
|
||||
s_('CiStatusText|scheduled')
|
||||
end
|
||||
|
||||
def label
|
||||
s_('CiStatusLabel|waiting for scheduled job')
|
||||
end
|
||||
|
||||
def self.matches?(pipeline, user)
|
||||
pipeline.scheduled?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -11,8 +11,7 @@ describe Gitlab::Ci::Status::Pipeline::Factory do
|
|||
end
|
||||
|
||||
context 'when pipeline has a core status' do
|
||||
(HasStatus::AVAILABLE_STATUSES - [HasStatus::BLOCKED_STATUS])
|
||||
.each do |simple_status|
|
||||
HasStatus::AVAILABLE_STATUSES.each do |simple_status|
|
||||
context "when core status is #{simple_status}" do
|
||||
let(:pipeline) { create(:ci_pipeline, status: simple_status) }
|
||||
|
||||
|
@ -24,8 +23,15 @@ describe Gitlab::Ci::Status::Pipeline::Factory do
|
|||
expect(factory.core_status).to be_a expected_status
|
||||
end
|
||||
|
||||
it 'does not match extended statuses' do
|
||||
expect(factory.extended_statuses).to be_empty
|
||||
if HasStatus::BLOCKED_STATUS.include?(simple_status)
|
||||
it 'matches a correct extended statuses' do
|
||||
expect(factory.extended_statuses)
|
||||
.to eq [Gitlab::Ci::Status::Pipeline::Blocked]
|
||||
end
|
||||
else
|
||||
it 'does not match extended statuses' do
|
||||
expect(factory.extended_statuses).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
it "fabricates a core status #{simple_status}" do
|
||||
|
@ -40,27 +46,6 @@ describe Gitlab::Ci::Status::Pipeline::Factory do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when core status is manual" do
|
||||
let(:pipeline) { create(:ci_pipeline, status: :manual) }
|
||||
|
||||
it "matches manual core status" do
|
||||
expect(factory.core_status)
|
||||
.to be_a Gitlab::Ci::Status::Manual
|
||||
end
|
||||
|
||||
it 'matches a correct extended statuses' do
|
||||
expect(factory.extended_statuses)
|
||||
.to eq [Gitlab::Ci::Status::Pipeline::Blocked]
|
||||
end
|
||||
|
||||
it 'extends core status with common pipeline methods' do
|
||||
expect(status).to have_details
|
||||
expect(status).not_to have_action
|
||||
expect(status.details_path)
|
||||
.to include "pipelines/#{pipeline.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when pipeline has warnings' do
|
||||
|
|
|
@ -300,7 +300,7 @@ describe HasStatus do
|
|||
|
||||
describe '::BLOCKED_STATUS' do
|
||||
it 'is a status manual' do
|
||||
expect(described_class::BLOCKED_STATUS).to eq 'manual'
|
||||
expect(described_class::BLOCKED_STATUS).to eq %w[manual scheduled]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue