From 85dc423f7090da0a52c73eb66faf22ddb20efff9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Sat, 19 Sep 2020 01:45:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-4-stable-ee --- spec/features/merge_request/batch_comments_spec.rb | 2 -- .../merge_request/maintainer_edits_fork_spec.rb | 2 -- .../user_accepts_merge_request_spec.rb | 34 +++++++++++++++++++--- .../merge_request/user_assigns_themselves_spec.rb | 9 ++++++ spec/features/merge_request/user_edits_mr_spec.rb | 28 ++++++++++++++++++ .../merge_request/user_expands_diff_spec.rb | 11 ++----- .../user_interacts_with_batched_mr_diffs_spec.rb | 3 -- .../merge_request/user_posts_notes_spec.rb | 2 +- ...lves_diff_notes_and_discussions_resolve_spec.rb | 4 --- .../user_sees_avatar_on_diff_notes_spec.rb | 1 - spec/features/merge_request/user_sees_diff_spec.rb | 10 ++----- .../merge_request/user_sees_merge_widget_spec.rb | 4 ++- .../merge_request/user_sees_pipelines_spec.rb | 4 +++ .../merge_request/user_sees_versions_spec.rb | 2 -- .../user_views_auto_expanding_diff_spec.rb | 6 ++-- .../user_views_diffs_file_by_file_spec.rb | 2 +- .../merge_request/user_views_diffs_spec.rb | 3 +- 17 files changed, 85 insertions(+), 42 deletions(-) (limited to 'spec/features/merge_request') diff --git a/spec/features/merge_request/batch_comments_spec.rb b/spec/features/merge_request/batch_comments_spec.rb index 60671213d75..40f6482c948 100644 --- a/spec/features/merge_request/batch_comments_spec.rb +++ b/spec/features/merge_request/batch_comments_spec.rb @@ -20,8 +20,6 @@ RSpec.describe 'Merge request > Batch comments', :js do context 'Feature is enabled' do before do - stub_feature_flags(diffs_batch_load: false) - visit_diffs end diff --git a/spec/features/merge_request/maintainer_edits_fork_spec.rb b/spec/features/merge_request/maintainer_edits_fork_spec.rb index be12f774c29..0e65cb358da 100644 --- a/spec/features/merge_request/maintainer_edits_fork_spec.rb +++ b/spec/features/merge_request/maintainer_edits_fork_spec.rb @@ -20,8 +20,6 @@ RSpec.describe 'a maintainer edits files on a source-branch of an MR from a fork end before do - stub_feature_flags(single_mr_diff_view: false) - target_project.add_maintainer(user) sign_in(user) diff --git a/spec/features/merge_request/user_accepts_merge_request_spec.rb b/spec/features/merge_request/user_accepts_merge_request_spec.rb index d7c9c8bddb1..3d18aef9327 100644 --- a/spec/features/merge_request/user_accepts_merge_request_spec.rb +++ b/spec/features/merge_request/user_accepts_merge_request_spec.rb @@ -12,12 +12,38 @@ RSpec.describe 'User accepts a merge request', :js, :sidekiq_might_not_need_inli sign_in(user) end - it 'presents merged merge request content' do - visit(merge_request_path(merge_request)) + context 'presents merged merge request content' do + it 'when merge method is set to merge commit' do + visit(merge_request_path(merge_request)) + + click_button('Merge') + + expect(page).to have_content("The changes were merged into #{merge_request.target_branch} with #{merge_request.short_merged_commit_sha}") + end + + context 'when merge method is set to fast-forward merge' do + let(:project) { create(:project, :public, :repository, merge_requests_ff_only_enabled: true) } + + it 'accepts a merge request with rebase and merge' do + merge_request = create(:merge_request, :rebased, source_project: project) + + visit(merge_request_path(merge_request)) - click_button('Merge') + click_button('Merge') - expect(page).to have_content("The changes were merged into #{merge_request.target_branch} with #{merge_request.short_merge_commit_sha}") + expect(page).to have_content("The changes were merged into #{merge_request.target_branch} with #{merge_request.short_merged_commit_sha}") + end + + it 'accepts a merge request with squash and merge' do + merge_request = create(:merge_request, :rebased, source_project: project, squash: true) + + visit(merge_request_path(merge_request)) + + click_button('Merge') + + expect(page).to have_content("The changes were merged into #{merge_request.target_branch} with #{merge_request.short_merged_commit_sha}") + end + end end context 'with removing the source branch' do diff --git a/spec/features/merge_request/user_assigns_themselves_spec.rb b/spec/features/merge_request/user_assigns_themselves_spec.rb index b6cd97dcc5a..04d401683bf 100644 --- a/spec/features/merge_request/user_assigns_themselves_spec.rb +++ b/spec/features/merge_request/user_assigns_themselves_spec.rb @@ -21,6 +21,15 @@ RSpec.describe 'Merge request > User assigns themselves' do expect(page).to have_content '2 issues have been assigned to you' end + it 'updates updated_by', :js do + expect do + click_button 'assign yourself' + + expect(find('.assignee')).to have_content(user.name) + wait_for_all_requests + end.to change { merge_request.reload.updated_at } + end + it 'returns user to the merge request', :js do click_link 'Assign yourself to these issues' diff --git a/spec/features/merge_request/user_edits_mr_spec.rb b/spec/features/merge_request/user_edits_mr_spec.rb index 2c949ed84f4..397ca70f4a1 100644 --- a/spec/features/merge_request/user_edits_mr_spec.rb +++ b/spec/features/merge_request/user_edits_mr_spec.rb @@ -20,4 +20,32 @@ RSpec.describe 'Merge request > User edits MR' do include_context 'merge request edit context' it_behaves_like 'an editable merge request' end + + context 'when merge_request_reviewers is turned on' do + before do + stub_feature_flags(merge_request_reviewers: true) + end + + context 'non-fork merge request' do + include_context 'merge request edit context' + it_behaves_like 'an editable merge request with reviewers' + end + + context 'for a forked project' do + let(:source_project) { fork_project(target_project, nil, repository: true) } + + include_context 'merge request edit context' + it_behaves_like 'an editable merge request with reviewers' + end + end + + context 'when merge_request_reviewers is turned off' do + before do + stub_feature_flags(merge_request_reviewers: false) + end + + it 'does not render reviewers dropdown' do + expect(page).not_to have_selector('.js-reviewer-search') + end + end end diff --git a/spec/features/merge_request/user_expands_diff_spec.rb b/spec/features/merge_request/user_expands_diff_spec.rb index d3867a91846..0e39cce13a1 100644 --- a/spec/features/merge_request/user_expands_diff_spec.rb +++ b/spec/features/merge_request/user_expands_diff_spec.rb @@ -7,23 +7,18 @@ RSpec.describe 'User expands diff', :js do let(:merge_request) { create(:merge_request, source_branch: 'expand-collapse-files', source_project: project, target_project: project) } before do - stub_feature_flags(diffs_batch_load: false) - - allow(Gitlab::Git::Diff).to receive(:size_limit).and_return(100.kilobytes) - allow(Gitlab::Git::Diff).to receive(:collapse_limit).and_return(10.kilobytes) - visit(diffs_project_merge_request_path(project, merge_request)) wait_for_requests end it 'allows user to expand diff' do - page.within find('[id="6eb14e00385d2fb284765eb1cd8d420d33d63fc9"]') do - click_link 'Click to expand it.' + page.within find('[id="19763941ab80e8c09871c0a425f0560d9053bcb3"]') do + find('[data-testid="expandButton"]').click wait_for_requests - expect(page).not_to have_content('Click to expand it.') + expect(page).not_to have_content('Expand File') expect(page).to have_selector('.code') end end diff --git a/spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb b/spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb index 1a7baff2fb1..782a7e3bfb6 100644 --- a/spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb +++ b/spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb @@ -10,9 +10,6 @@ RSpec.describe 'Batch diffs', :js do let(:merge_request) { create(:merge_request, source_project: project, source_branch: 'master', target_branch: 'empty-branch') } before do - stub_feature_flags(single_mr_diff_view: project) - stub_feature_flags(diffs_batch_load: true) - sign_in(project.owner) visit diffs_project_merge_request_path(merge_request.project, merge_request) diff --git a/spec/features/merge_request/user_posts_notes_spec.rb b/spec/features/merge_request/user_posts_notes_spec.rb index 4c079b98c90..489582521b5 100644 --- a/spec/features/merge_request/user_posts_notes_spec.rb +++ b/spec/features/merge_request/user_posts_notes_spec.rb @@ -82,7 +82,7 @@ RSpec.describe 'Merge request > User posts notes', :js do it 'shows a reply button' do reply_button = find('.js-reply-button', match: :first) - expect(reply_button).to have_selector('.ic-comment') + expect(reply_button).to have_selector('[data-testid="comment-icon"]') end it 'shows reply placeholder when clicking reply button' do diff --git a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb index f2adfd21e49..cd06886169d 100644 --- a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb +++ b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb @@ -15,10 +15,6 @@ RSpec.describe 'Merge request > User resolves diff notes and threads', :js do diff_refs: merge_request.diff_refs) end - before do - stub_feature_flags(diffs_batch_load: false) - end - context 'no threads' do before do project.add_maintainer(user) diff --git a/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb b/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb index 7fad805866b..d15d5b3bc73 100644 --- a/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb +++ b/spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb @@ -20,7 +20,6 @@ RSpec.describe 'Merge request > User sees avatars on diff notes', :js do let!(:note) { create(:diff_note_on_merge_request, project: project, noteable: merge_request, position: position) } before do - stub_feature_flags(diffs_batch_load: false) project.add_maintainer(user) sign_in user diff --git a/spec/features/merge_request/user_sees_diff_spec.rb b/spec/features/merge_request/user_sees_diff_spec.rb index d067fc0ada4..7a3a14e61e3 100644 --- a/spec/features/merge_request/user_sees_diff_spec.rb +++ b/spec/features/merge_request/user_sees_diff_spec.rb @@ -9,10 +9,6 @@ RSpec.describe 'Merge request > User sees diff', :js do let(:project) { create(:project, :public, :repository) } let(:merge_request) { create(:merge_request, source_project: project) } - before do - stub_feature_flags(diffs_batch_load: false) - end - context 'when linking to note' do describe 'with unresolved note' do let(:note) { create :diff_note_on_merge_request, project: project, noteable: merge_request } @@ -72,7 +68,7 @@ RSpec.describe 'Merge request > User sees diff', :js do end context 'as user who needs to fork' do - it 'shows fork/cancel confirmation', :sidekiq_might_not_need_inline, quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/196749' do + it 'shows fork/cancel confirmation', :sidekiq_might_not_need_inline do sign_in(user) visit diffs_project_merge_request_path(project, merge_request) @@ -97,7 +93,7 @@ RSpec.describe 'Merge request > User sees diff', :js do let c = 3; let d = 3; } - CONTENT + CONTENT new_file_content = <<~CONTENT @@ -107,7 +103,7 @@ RSpec.describe 'Merge request > User sees diff', :js do let c = 3; let x = 3; } - CONTENT + CONTENT file_name = 'xss_file.rs' diff --git a/spec/features/merge_request/user_sees_merge_widget_spec.rb b/spec/features/merge_request/user_sees_merge_widget_spec.rb index c7d26dfc814..93fea44707c 100644 --- a/spec/features/merge_request/user_sees_merge_widget_spec.rb +++ b/spec/features/merge_request/user_sees_merge_widget_spec.rb @@ -127,8 +127,10 @@ RSpec.describe 'Merge request > User sees merge widget', :js do end end - context 'when merge request is in the blocked pipeline state' do + context 'when merge request is in the blocked pipeline state and pipeline must succeed' do before do + project.update_attribute(:only_allow_merge_if_pipeline_succeeds, true) + create( :ci_pipeline, project: project, diff --git a/spec/features/merge_request/user_sees_pipelines_spec.rb b/spec/features/merge_request/user_sees_pipelines_spec.rb index 5d41e49c478..8e15ba6cf8d 100644 --- a/spec/features/merge_request/user_sees_pipelines_spec.rb +++ b/spec/features/merge_request/user_sees_pipelines_spec.rb @@ -123,6 +123,10 @@ RSpec.describe 'Merge request > User sees pipelines', :js do context 'when actor is a developer in parent project' do let(:actor) { developer_in_parent } + before do + stub_feature_flags(ci_disallow_to_create_merge_request_pipelines_in_target_project: false) + end + it 'creates a pipeline in the parent project when user proceeds with the warning' do visit project_merge_request_path(parent_project, merge_request) diff --git a/spec/features/merge_request/user_sees_versions_spec.rb b/spec/features/merge_request/user_sees_versions_spec.rb index 60e054ddbee..fb616ceae9d 100644 --- a/spec/features/merge_request/user_sees_versions_spec.rb +++ b/spec/features/merge_request/user_sees_versions_spec.rb @@ -17,8 +17,6 @@ RSpec.describe 'Merge request > User sees versions', :js do let!(:params) { {} } before do - stub_feature_flags(diffs_batch_load: false) - project.add_maintainer(user) sign_in(user) visit diffs_project_merge_request_path(project, merge_request, params) diff --git a/spec/features/merge_request/user_views_auto_expanding_diff_spec.rb b/spec/features/merge_request/user_views_auto_expanding_diff_spec.rb index 20a5910e66d..1748f66c934 100644 --- a/spec/features/merge_request/user_views_auto_expanding_diff_spec.rb +++ b/spec/features/merge_request/user_views_auto_expanding_diff_spec.rb @@ -11,9 +11,6 @@ RSpec.describe 'User views diffs file-by-file', :js do let(:user) { create(:user, view_diffs_file_by_file: true) } before do - allow(Gitlab::Git::Diff).to receive(:size_limit).and_return(100.kilobytes) - allow(Gitlab::Git::Diff).to receive(:collapse_limit).and_return(10.kilobytes) - project.add_developer(user) sign_in(user) @@ -27,9 +24,10 @@ RSpec.describe 'User views diffs file-by-file', :js do page.within('#diffs') do expect(page).not_to have_content('This diff is collapsed') - click_button 'Next' + find('.page-link.next-page-item').click expect(page).not_to have_content('This diff is collapsed') + expect(page).to have_selector('.diff-file .file-title', text: 'large_diff_renamed.md') end end end diff --git a/spec/features/merge_request/user_views_diffs_file_by_file_spec.rb b/spec/features/merge_request/user_views_diffs_file_by_file_spec.rb index abb313cb529..bb4bf0864c9 100644 --- a/spec/features/merge_request/user_views_diffs_file_by_file_spec.rb +++ b/spec/features/merge_request/user_views_diffs_file_by_file_spec.rb @@ -25,7 +25,7 @@ RSpec.describe 'User views diffs file-by-file', :js do expect(page).to have_selector('.file-holder', count: 1) expect(page).to have_selector('.diff-file .file-title', text: '.DS_Store') - click_button 'Next' + find('.page-link.next-page-item').click expect(page).to have_selector('.file-holder', count: 1) expect(page).to have_selector('.diff-file .file-title', text: '.gitignore') diff --git a/spec/features/merge_request/user_views_diffs_spec.rb b/spec/features/merge_request/user_views_diffs_spec.rb index 537c0473fa4..928755bf5de 100644 --- a/spec/features/merge_request/user_views_diffs_spec.rb +++ b/spec/features/merge_request/user_views_diffs_spec.rb @@ -11,7 +11,6 @@ RSpec.describe 'User views diffs', :js do let(:view) { 'inline' } before do - stub_feature_flags(diffs_batch_load: false) visit(diffs_project_merge_request_path(project, merge_request, view: view)) wait_for_requests @@ -62,7 +61,7 @@ RSpec.describe 'User views diffs', :js do end it 'expands all diffs' do - first('#a5cc2925ca8258af241be7e5b0381edf30266302 .js-file-title').click + first('.js-file-title').click expect(page).to have_button('Expand all') -- cgit v1.2.3