diff options
author | Mark Fletcher <mark@gitlab.com> | 2017-07-20 17:54:36 +0700 |
---|---|---|
committer | Mark Fletcher <mark@gitlab.com> | 2018-02-01 17:25:13 +0000 |
commit | 391d1915c8a9e6f723594a6f4930dcd90fe1bc1a (patch) | |
tree | 62b59142e4275d527f35e44cae73154823b4a24f /spec/views | |
parent | 5b73e0eb35f5b9b78c228a4867ef78538ef05653 (diff) | |
download | gitlab-ce-391d1915c8a9e6f723594a6f4930dcd90fe1bc1a.tar.gz |
Hide pipeline schedule 'take ownership' for current owner
Diffstat (limited to 'spec/views')
-rw-r--r-- | spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb b/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb new file mode 100644 index 00000000000..6e7d8db99c4 --- /dev/null +++ b/spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb @@ -0,0 +1,47 @@ +require 'spec_helper' + +describe 'projects/pipeline_schedules/_pipeline_schedule' do + let(:owner) { create(:user) } + let(:master) { create(:user) } + let(:project) { create(:project) } + let(:pipeline_schedule) { create(:ci_pipeline_schedule, :nightly, project: project) } + + before do + assign(:project, project) + + allow(view).to receive(:current_user).and_return(user) + allow(view).to receive(:pipeline_schedule).and_return(pipeline_schedule) + + allow(view).to receive(:can?).and_return(true) + end + + context 'taking ownership of schedule' do + context 'when non-owner is signed in' do + let(:user) { master } + + before do + allow(view).to receive(:can?).with(master, :take_ownership_pipeline_schedule, pipeline_schedule).and_return(true) + end + + it 'non-owner can take ownership of pipeline' do + render + + expect(rendered).to have_link('Take ownership') + end + end + + context 'when owner is signed in' do + let(:user) { owner } + + before do + allow(view).to receive(:can?).with(owner, :take_ownership_pipeline_schedule, pipeline_schedule).and_return(false) + end + + it 'owner cannot take ownership of pipeline' do + render + + expect(rendered).not_to have_link('Take ownership') + end + end + end +end |