Extend action tooltop to show info about abilities

This commit is contained in:
Grzegorz Bizon 2017-05-01 14:29:20 +02:00
parent 6baaa8a98e
commit 4f2cc5951f
3 changed files with 45 additions and 34 deletions

View File

@ -6,7 +6,11 @@ module Gitlab
include Status::Extended
def label
if has_action?
'manual play action'
else
'manual play action (not allowed)'
end
end
def has_action?

View File

@ -216,7 +216,7 @@ describe Gitlab::Ci::Status::Build::Factory do
expect(status.group).to eq 'manual'
expect(status.icon).to eq 'icon_status_manual'
expect(status.favicon).to eq 'favicon_status_manual'
expect(status.label).to eq 'manual play action'
expect(status.label).to include 'manual play action'
expect(status).to have_details
expect(status.action_path).to include 'play'
end

View File

@ -1,36 +1,44 @@
require 'spec_helper'
describe Gitlab::Ci::Status::Build::Play do
let(:status) { double('core') }
let(:user) { double('user') }
subject { described_class.new(status) }
describe '#label' do
it { expect(subject.label).to eq 'manual play action' }
end
describe 'action details' do
let(:user) { create(:user) }
let(:build) { create(:ci_build, :manual) }
let(:status) { Gitlab::Ci::Status::Core.new(build, user) }
describe '#has_action?' do
subject { described_class.new(status) }
context 'when user is allowed to update build' do
context 'when user can push to branch' do
before { build.project.add_master(user) }
describe '#has_action?' do
it { is_expected.to have_action }
end
describe '#label' do
it 'has a label that says it is a manual action' do
expect(subject.label).to eq 'manual play action'
end
end
end
context 'when user can not push to the branch' do
before { build.project.add_developer(user) }
describe 'has_action?' do
it { is_expected.not_to have_action }
end
describe '#label' do
it 'has a label that says user is not allowed to play it' do
expect(subject.label).to eq 'manual play action (not allowed)'
end
end
end
end
context 'when user is not allowed to update build' do
describe '#has_action?' do
it { is_expected.not_to have_action }
end
end
@ -46,7 +54,6 @@ describe Gitlab::Ci::Status::Build::Play do
describe '#action_title' do
it { expect(subject.action_title).to eq 'Play' }
end
end
describe '.matches?' do
subject { described_class.matches?(build, user) }