From 8bf88876b8198af71bcfa20ae7038b6a6063e406 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 3 Apr 2019 13:34:26 +0300 Subject: [PATCH] Extract confidential quick action spec to a shared example --- .../issues/user_uses_quick_actions_spec.rb | 39 ++----------------- ...nfidential_quick_action_shared_examples.rb | 31 +++++++++++++++ 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/spec/features/issues/user_uses_quick_actions_spec.rb b/spec/features/issues/user_uses_quick_actions_spec.rb index 362f8a468ec..426e205b30b 100644 --- a/spec/features/issues/user_uses_quick_actions_spec.rb +++ b/spec/features/issues/user_uses_quick_actions_spec.rb @@ -43,6 +43,7 @@ describe 'Issues > User uses quick actions', :js do describe 'issue-only commands' do let(:user) { create(:user) } let(:project) { create(:project, :public) } + let(:issue) { create(:issue, project: project) } before do project.add_maintainer(user) @@ -55,6 +56,8 @@ describe 'Issues > User uses quick actions', :js do wait_for_requests end + it_behaves_like 'confidential quick action' + describe 'adding a due date from note' do let(:issue) { create(:issue, project: project) } @@ -137,42 +140,6 @@ describe 'Issues > User uses quick actions', :js do end end - describe 'make issue confidential' do - let(:issue) { create(:issue, project: project) } - let(:original_issue) { create(:issue, project: project) } - - context 'when the current user can update issues' do - it 'does not create a note, and marks the issue as confidential' do - add_note("/confidential") - - expect(page).not_to have_content "/confidential" - expect(page).to have_content 'Commands applied' - expect(page).to have_content "made the issue confidential" - - expect(issue.reload).to be_confidential - end - end - - context 'when the current user cannot update the issue' do - let(:guest) { create(:user) } - before do - project.add_guest(guest) - gitlab_sign_out - sign_in(guest) - visit project_issue_path(project, issue) - end - - it 'does not create a note, and does not mark the issue as confidential' do - add_note("/confidential") - - expect(page).not_to have_content 'Commands applied' - expect(page).not_to have_content "made the issue confidential" - - expect(issue.reload).not_to be_confidential - end - end - end - describe 'move the issue to another project' do let(:issue) { create(:issue, project: project) } diff --git a/spec/support/shared_examples/quick_actions/issue/confidential_quick_action_shared_examples.rb b/spec/support/shared_examples/quick_actions/issue/confidential_quick_action_shared_examples.rb index c68e5aee842..336500487fe 100644 --- a/spec/support/shared_examples/quick_actions/issue/confidential_quick_action_shared_examples.rb +++ b/spec/support/shared_examples/quick_actions/issue/confidential_quick_action_shared_examples.rb @@ -1,4 +1,35 @@ # frozen_string_literal: true shared_examples 'confidential quick action' do + context 'when the current user can update issues' do + it 'does not create a note, and marks the issue as confidential' do + add_note('/confidential') + + expect(page).not_to have_content '/confidential' + expect(page).to have_content 'Commands applied' + expect(page).to have_content 'made the issue confidential' + + expect(issue.reload).to be_confidential + end + end + + context 'when the current user cannot update the issue' do + let(:guest) { create(:user) } + + before do + project.add_guest(guest) + gitlab_sign_out + sign_in(guest) + visit project_issue_path(project, issue) + end + + it 'does not create a note, and does not mark the issue as confidential' do + add_note('/confidential') + + expect(page).not_to have_content 'Commands applied' + expect(page).not_to have_content 'made the issue confidential' + + expect(issue.reload).not_to be_confidential + end + end end