Make CI/CD detailed status group concept explicit
This commit is contained in:
parent
b1120fc3e7
commit
1b313e8db8
15 changed files with 64 additions and 10 deletions
|
@ -1,10 +1,11 @@
|
|||
- status = local_assigns.fetch(:status)
|
||||
- css_classes = "ci-status ci-#{status.group}"
|
||||
|
||||
- if status.has_details?
|
||||
= link_to status.details_path, class: "ci-status ci-#{status}" do
|
||||
= link_to status.details_path, class: css_classes do
|
||||
= custom_icon(status.icon)
|
||||
= status.text
|
||||
- else
|
||||
%span{ class: "ci-status ci-#{status}" }
|
||||
%span{ class: css_classes }
|
||||
= custom_icon(status.icon)
|
||||
= status.text
|
||||
|
|
|
@ -17,6 +17,10 @@ module Gitlab
|
|||
'icon_status_manual'
|
||||
end
|
||||
|
||||
def group
|
||||
'manual'
|
||||
end
|
||||
|
||||
def has_action?
|
||||
can?(user, :update_build, subject)
|
||||
end
|
||||
|
|
|
@ -17,6 +17,10 @@ module Gitlab
|
|||
'icon_status_manual'
|
||||
end
|
||||
|
||||
def group
|
||||
'manual'
|
||||
end
|
||||
|
||||
def has_action?
|
||||
can?(user, :update_build, subject)
|
||||
end
|
||||
|
|
|
@ -22,14 +22,7 @@ module Gitlab
|
|||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# Deprecation warning: this method is here because we need to maintain
|
||||
# backwards compatibility with legacy statuses. We often do something
|
||||
# like "ci-status ci-status-#{status}" to set CSS class.
|
||||
#
|
||||
# `to_s` method should be renamed to `group` at some point, after
|
||||
# phasing legacy satuses out.
|
||||
#
|
||||
def to_s
|
||||
def group
|
||||
self.class.name.demodulize.downcase.underscore
|
||||
end
|
||||
|
||||
|
|
|
@ -32,6 +32,14 @@ describe Gitlab::Ci::Status::Build::Cancelable do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it 'does not override status group' do
|
||||
expect(status).to receive(:group)
|
||||
|
||||
subject.group
|
||||
end
|
||||
end
|
||||
|
||||
describe 'action details' do
|
||||
let(:user) { create(:user) }
|
||||
let(:build) { create(:ci_build) }
|
||||
|
|
|
@ -18,6 +18,10 @@ describe Gitlab::Ci::Status::Build::Play do
|
|||
it { expect(subject.icon).to eq 'icon_status_manual' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'manual' }
|
||||
end
|
||||
|
||||
describe 'action details' do
|
||||
let(:user) { create(:user) }
|
||||
let(:build) { create(:ci_build) }
|
||||
|
|
|
@ -32,6 +32,14 @@ describe Gitlab::Ci::Status::Build::Retryable do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it 'does not override status group' do
|
||||
expect(status).to receive(:group)
|
||||
|
||||
subject.group
|
||||
end
|
||||
end
|
||||
|
||||
describe 'action details' do
|
||||
let(:user) { create(:user) }
|
||||
let(:build) { create(:ci_build) }
|
||||
|
|
|
@ -20,6 +20,10 @@ describe Gitlab::Ci::Status::Build::Stop do
|
|||
it { expect(subject.icon).to eq 'icon_status_manual' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'manual' }
|
||||
end
|
||||
|
||||
describe 'action details' do
|
||||
let(:user) { create(:user) }
|
||||
let(:build) { create(:ci_build) }
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Canceled do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_canceled' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'canceled' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Created do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_created' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'created' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Failed do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_failed' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'failed' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Pending do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_pending' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'pending' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Running do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_running' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'running' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Skipped do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_skipped' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'skipped' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,4 +16,8 @@ describe Gitlab::Ci::Status::Success do
|
|||
describe '#icon' do
|
||||
it { expect(subject.icon).to eq 'icon_status_success' }
|
||||
end
|
||||
|
||||
describe '#group' do
|
||||
it { expect(subject.group).to eq 'success' }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue