diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 10:33:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 10:33:21 +0300 |
commit | 36a59d088eca61b834191dacea009677a96c052f (patch) | |
tree | e4f33972dab5d8ef79e3944a9f403035fceea43f /spec/features/merge_request/merge_request_discussion_lock_spec.rb | |
parent | a1761f15ec2cae7c7f7bbda39a75494add0dfd6f (diff) |
Add latest changes from gitlab-org/gitlab@15-0-stable-eev15.0.0-rc42
Diffstat (limited to 'spec/features/merge_request/merge_request_discussion_lock_spec.rb')
-rw-r--r-- | spec/features/merge_request/merge_request_discussion_lock_spec.rb | 93 |
1 files changed, 63 insertions, 30 deletions
diff --git a/spec/features/merge_request/merge_request_discussion_lock_spec.rb b/spec/features/merge_request/merge_request_discussion_lock_spec.rb index 4e0265839f6..a7bc2a062af 100644 --- a/spec/features/merge_request/merge_request_discussion_lock_spec.rb +++ b/spec/features/merge_request/merge_request_discussion_lock_spec.rb @@ -8,59 +8,91 @@ RSpec.describe 'Merge Request Discussion Lock', :js do let(:user) { create(:user) } let(:project) { create(:project, :public, :repository) } let(:merge_request) { create(:merge_request, source_project: project, author: user) } + let(:moved_mr_sidebar_enabled) { false } before do + stub_feature_flags(moved_mr_sidebar: moved_mr_sidebar_enabled) sign_in(user) end - context 'when a user is a team member' do - before do - project.add_developer(user) - end + context 'moved sidebar flag disabled' do + context 'when a user is a team member' do + before do + project.add_developer(user) + end - context 'when the discussion is unlocked' do - it 'the user can lock the merge_request' do - visit project_merge_request_path(merge_request.project, merge_request) + context 'when the discussion is unlocked' do + it 'the user can lock the merge_request' do + visit project_merge_request_path(merge_request.project, merge_request) + + expect(find('.issuable-sidebar')).to have_content('Unlocked') - expect(find('.issuable-sidebar')).to have_content('Unlocked') + page.within('.issuable-sidebar') do + find('.lock-edit').click + click_button('Lock') + end - page.within('.issuable-sidebar') do - find('.lock-edit').click - click_button('Lock') + expect(find('[data-testid="lock-status"]')).to have_content('Locked') end + end + + context 'when the discussion is locked' do + before do + merge_request.update_attribute(:discussion_locked, true) + visit project_merge_request_path(merge_request.project, merge_request) + end + + it 'the user can unlock the merge_request' do + expect(find('.issuable-sidebar')).to have_content('Locked') - expect(find('[data-testid="lock-status"]')).to have_content('Locked') + page.within('.issuable-sidebar') do + find('.lock-edit').click + click_button('Unlock') + end + + expect(find('[data-testid="lock-status"]')).to have_content('Unlocked') + end end end - context 'when the discussion is locked' do - before do - merge_request.update_attribute(:discussion_locked, true) - visit project_merge_request_path(merge_request.project, merge_request) - end + context 'when a user is not a team member' do + context 'when the discussion is unlocked' do + before do + visit project_merge_request_path(merge_request.project, merge_request) + end - it 'the user can unlock the merge_request' do - expect(find('.issuable-sidebar')).to have_content('Locked') + it 'the user can not lock the merge_request' do + expect(find('.issuable-sidebar')).to have_content('Unlocked') + expect(find('.issuable-sidebar')).not_to have_selector('.lock-edit') + end + end - page.within('.issuable-sidebar') do - find('.lock-edit').click - click_button('Unlock') + context 'when the discussion is locked' do + before do + merge_request.update_attribute(:discussion_locked, true) + visit project_merge_request_path(merge_request.project, merge_request) end - expect(find('[data-testid="lock-status"]')).to have_content('Unlocked') + it 'the user can not unlock the merge_request' do + expect(find('.issuable-sidebar')).to have_content('Locked') + expect(find('.issuable-sidebar')).not_to have_selector('.lock-edit') + end end end end - context 'when a user is not a team member' do + context 'moved sidebar flag enabled' do + let(:moved_mr_sidebar_enabled) { true } + context 'when the discussion is unlocked' do before do visit project_merge_request_path(merge_request.project, merge_request) end - it 'the user can not lock the merge_request' do - expect(find('.issuable-sidebar')).to have_content('Unlocked') - expect(find('.issuable-sidebar')).not_to have_selector('.lock-edit') + it 'the user can lock the merge_request' do + click_button 'Toggle dropdown' + + expect(page).to have_content('Lock merge request') end end @@ -70,9 +102,10 @@ RSpec.describe 'Merge Request Discussion Lock', :js do visit project_merge_request_path(merge_request.project, merge_request) end - it 'the user can not unlock the merge_request' do - expect(find('.issuable-sidebar')).to have_content('Locked') - expect(find('.issuable-sidebar')).not_to have_selector('.lock-edit') + it 'the user can unlock the merge_request' do + click_button 'Toggle dropdown' + + expect(page).to have_content('Unlock merge request') end end end |