diff options
Diffstat (limited to 'spec/lib/gitlab/ci/status/build/play_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/status/build/play_spec.rb | 65 |
1 files changed, 36 insertions, 29 deletions
diff --git a/spec/lib/gitlab/ci/status/build/play_spec.rb b/spec/lib/gitlab/ci/status/build/play_spec.rb index 95f1388a9b9..abefdbe7c66 100644 --- a/spec/lib/gitlab/ci/status/build/play_spec.rb +++ b/spec/lib/gitlab/ci/status/build/play_spec.rb @@ -1,51 +1,58 @@ require 'spec_helper' describe Gitlab::Ci::Status::Build::Play do - let(:status) { double('core') } - let(:user) { double('user') } + let(:user) { create(:user) } + let(:build) { create(:ci_build, :manual) } + let(:status) { Gitlab::Ci::Status::Core.new(build, 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) } + 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 - 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 - it { is_expected.to have_action } + 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) } + context 'when user can not push to the branch' do + before { build.project.add_developer(user) } - it { is_expected.not_to have_action } - end + describe 'has_action?' do + it { is_expected.not_to have_action } end - context 'when user is not allowed to update build' do - it { is_expected.not_to have_action } + 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 - describe '#action_path' do - it { expect(subject.action_path).to include "#{build.id}/play" } + context 'when user is not allowed to update build' do + describe '#has_action?' do + it { is_expected.not_to have_action } end + end - describe '#action_icon' do - it { expect(subject.action_icon).to eq 'icon_action_play' } - end + describe '#action_path' do + it { expect(subject.action_path).to include "#{build.id}/play" } + end - describe '#action_title' do - it { expect(subject.action_title).to eq 'Play' } - end + describe '#action_icon' do + it { expect(subject.action_icon).to eq 'icon_action_play' } + end + + describe '#action_title' do + it { expect(subject.action_title).to eq 'Play' } end describe '.matches?' do |