Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-06-20 14:10:13 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-06-20 14:10:13 +0300
commit0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch)
tree7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /spec/features/merge_request
parent72123183a20411a36d607d70b12d57c484394c8e (diff)
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'spec/features/merge_request')
-rw-r--r--spec/features/merge_request/batch_comments_spec.rb271
-rw-r--r--spec/features/merge_request/user_comments_on_diff_spec.rb1
-rw-r--r--spec/features/merge_request/user_creates_merge_request_spec.rb3
-rw-r--r--spec/features/merge_request/user_posts_diff_notes_spec.rb2
-rw-r--r--spec/features/merge_request/user_posts_notes_spec.rb3
-rw-r--r--spec/features/merge_request/user_resolves_conflicts_spec.rb17
-rw-r--r--spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb1
-rw-r--r--spec/features/merge_request/user_sees_deployment_widget_spec.rb6
-rw-r--r--spec/features/merge_request/user_sees_discussions_spec.rb2
-rw-r--r--spec/features/merge_request/user_sees_versions_spec.rb1
-rw-r--r--spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb10
11 files changed, 143 insertions, 174 deletions
diff --git a/spec/features/merge_request/batch_comments_spec.rb b/spec/features/merge_request/batch_comments_spec.rb
index 9b54d95be6b..f03c812ebb5 100644
--- a/spec/features/merge_request/batch_comments_spec.rb
+++ b/spec/features/merge_request/batch_comments_spec.rb
@@ -13,224 +13,221 @@ RSpec.describe 'Merge request > Batch comments', :js do
end
before do
- stub_feature_flags(paginated_notes: false)
-
project.add_maintainer(user)
sign_in(user)
+
+ visit_diffs
end
- context 'Feature is enabled' do
- before do
- visit_diffs
- end
+ it 'adds draft note' do
+ write_diff_comment
- it 'adds draft note' do
- write_diff_comment
+ expect(find('.draft-note-component')).to have_content('Line is wrong')
- expect(find('.draft-note-component')).to have_content('Line is wrong')
+ expect(page).to have_selector('[data-testid="review_bar_component"]')
- expect(page).to have_selector('[data-testid="review_bar_component"]')
+ expect(find('[data-testid="review_bar_component"] .gl-badge')).to have_content('1')
+ end
+
+ it 'publishes review' do
+ write_diff_comment
- expect(find('[data-testid="review_bar_component"] .btn-confirm')).to have_content('1')
+ page.within('.review-bar-content') do
+ click_button 'Finish review'
+ click_button 'Submit review'
end
- it 'publishes review' do
- write_diff_comment
+ wait_for_requests
- page.within('.review-bar-content') do
- click_button 'Submit review'
- end
+ expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
- wait_for_requests
+ expect(page).to have_selector('.note:not(.draft-note)', text: 'Line is wrong')
+ end
- expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
+ it 'publishes single comment' do
+ write_diff_comment
- expect(page).to have_selector('.note:not(.draft-note)', text: 'Line is wrong')
- end
+ click_button 'Add comment now'
- it 'publishes single comment' do
- write_diff_comment
+ wait_for_requests
- click_button 'Add comment now'
+ expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
- wait_for_requests
+ expect(page).to have_selector('.note:not(.draft-note)', text: 'Line is wrong')
+ end
+
+ it 'deletes draft note' do
+ write_diff_comment
- expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
+ find('.js-note-delete').click
- expect(page).to have_selector('.note:not(.draft-note)', text: 'Line is wrong')
+ page.within('.modal') do
+ click_button('Delete Comment', match: :first)
end
- it 'deletes draft note' do
- write_diff_comment
+ wait_for_requests
- find('.js-note-delete').click
+ expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
+ end
- page.within('.modal') do
- click_button('Delete Comment', match: :first)
- end
+ it 'edits draft note' do
+ write_diff_comment
- wait_for_requests
+ find('.js-note-edit').click
- expect(page).not_to have_selector('.draft-note-component', text: 'Line is wrong')
- end
+ # make sure comment form is in view
+ execute_script("window.scrollBy(0, 200)")
- it 'edits draft note' do
- write_diff_comment
+ write_comment(text: 'Testing update', button_text: 'Save comment')
- find('.js-note-edit').click
+ expect(page).to have_selector('.draft-note-component', text: 'Testing update')
+ end
- # make sure comment form is in view
- execute_script("window.scrollBy(0, 200)")
+ context 'with image and file draft note' do
+ let(:merge_request) { create(:merge_request_with_diffs, :with_image_diffs, source_project: project) }
+ let!(:draft_on_text) { create(:draft_note_on_text_diff, merge_request: merge_request, author: user, path: 'README.md', note: 'Lorem ipsum on text...') }
+ let!(:draft_on_image) { create(:draft_note_on_image_diff, merge_request: merge_request, author: user, path: 'files/images/ee_repo_logo.png', note: 'Lorem ipsum on an image...') }
- write_comment(text: 'Testing update', button_text: 'Save comment')
+ it 'does not show in overview' do
+ visit_overview
- expect(page).to have_selector('.draft-note-component', text: 'Testing update')
+ expect(page).to have_no_text(draft_on_text.note)
+ expect(page).to have_no_text(draft_on_image.note)
end
+ end
- context 'with image and file draft note' do
- let(:merge_request) { create(:merge_request_with_diffs, :with_image_diffs, source_project: project) }
- let!(:draft_on_text) { create(:draft_note_on_text_diff, merge_request: merge_request, author: user, path: 'README.md', note: 'Lorem ipsum on text...') }
- let!(:draft_on_image) { create(:draft_note_on_image_diff, merge_request: merge_request, author: user, path: 'files/images/ee_repo_logo.png', note: 'Lorem ipsum on an image...') }
-
- it 'does not show in overview' do
- visit_overview
+ context 'adding single comment to review' do
+ before do
+ visit_overview
+ end
- expect(page).to have_no_text(draft_on_text.note)
- expect(page).to have_no_text(draft_on_image.note)
- end
+ it 'at first does not show `Add to review` and `Add comment now` buttons' do
+ expect(page).to have_no_button('Add to review')
+ expect(page).to have_no_button('Add comment now')
end
- context 'adding single comment to review' do
+ context 'when review has started' do
before do
- visit_overview
- end
-
- it 'at first does not show `Add to review` and `Add comment now` buttons' do
- expect(page).to have_no_button('Add to review')
- expect(page).to have_no_button('Add comment now')
- end
-
- context 'when review has started' do
- before do
- visit_diffs
+ visit_diffs
- write_diff_comment
+ write_diff_comment
- visit_overview
- end
+ visit_overview
+ end
- it 'can add comment to review' do
- write_comment(selector: '.js-main-target-form', field: 'note-body', text: 'Its a draft comment', button_text: 'Add to review')
+ it 'can add comment to review' do
+ write_comment(selector: '.js-main-target-form', field: 'note-body', text: 'Its a draft comment', button_text: 'Add to review')
- expect(page).to have_selector('.draft-note-component', text: 'Its a draft comment')
+ expect(page).to have_selector('.draft-note-component', text: 'Its a draft comment')
- click_button('Pending comments')
+ click_button('Pending comments')
- expect(page).to have_text('2 pending comments')
- end
+ expect(page).to have_text('2 pending comments')
+ end
- it 'can add comment right away' do
- write_comment(selector: '.js-main-target-form', field: 'note-body', text: 'Its a regular comment', button_text: 'Add comment now')
+ it 'can add comment right away' do
+ write_comment(selector: '.js-main-target-form', field: 'note-body', text: 'Its a regular comment', button_text: 'Add comment now')
- expect(page).to have_selector('.note:not(.draft-note)', text: 'Its a regular comment')
+ expect(page).to have_selector('.note:not(.draft-note)', text: 'Its a regular comment')
- click_button('Pending comments')
+ click_button('Pending comments')
- expect(page).to have_text('1 pending comment')
- end
+ expect(page).to have_text('1 pending comment')
end
end
+ end
- context 'in parallel diff' do
- before do
- find('.js-show-diff-settings').click
- click_button 'Side-by-side'
- find('.js-show-diff-settings').click
- end
+ context 'in parallel diff' do
+ before do
+ find('.js-show-diff-settings').click
+ click_button 'Side-by-side'
+ find('.js-show-diff-settings').click
+ end
- it 'adds draft comments to both sides' do
- write_parallel_comment('2f6fcd96b88b36ce98c38da085c795a27d92a3dd_10_9')
- write_parallel_comment('2f6fcd96b88b36ce98c38da085c795a27d92a3dd_9_9', button_text: 'Add to review', text: 'Another wrong line')
+ it 'adds draft comments to both sides' do
+ write_parallel_comment('2f6fcd96b88b36ce98c38da085c795a27d92a3dd_10_9')
+ write_parallel_comment('2f6fcd96b88b36ce98c38da085c795a27d92a3dd_9_9', button_text: 'Add to review', text: 'Another wrong line')
- expect(find('.new .draft-note-component')).to have_content('Line is wrong')
- expect(find('.old .draft-note-component')).to have_content('Another wrong line')
+ expect(find('.new .draft-note-component')).to have_content('Line is wrong')
+ expect(find('.old .draft-note-component')).to have_content('Another wrong line')
- expect(find('.review-bar-content .btn-confirm')).to have_content('2')
- end
+ expect(find('.review-bar-content .gl-badge')).to have_content('2')
end
+ end
- context 'thread is unresolved' do
- let!(:active_discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion }
+ context 'thread is unresolved' do
+ let!(:active_discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion }
- before do
- visit_diffs
- end
+ before do
+ visit_diffs
+ end
- it 'publishes comment right away and resolves the thread' do
- expect(active_discussion.resolved?).to eq(false)
+ it 'publishes comment right away and resolves the thread' do
+ expect(active_discussion.resolved?).to eq(false)
- write_reply_to_discussion(button_text: 'Add comment now', resolve: true)
+ write_reply_to_discussion(button_text: 'Add comment now', resolve: true)
- page.within '.discussions-counter' do
- expect(page).to have_content('All threads resolved')
- end
+ page.within '.discussions-counter' do
+ expect(page).to have_content('All threads resolved')
end
+ end
- it 'publishes review and resolves the thread' do
- expect(active_discussion.resolved?).to eq(false)
+ it 'publishes review and resolves the thread' do
+ expect(active_discussion.resolved?).to eq(false)
- write_reply_to_discussion(resolve: true)
+ write_reply_to_discussion(resolve: true)
- page.within('.review-bar-content') do
- click_button 'Submit review'
- end
+ page.within('.review-bar-content') do
+ click_button 'Finish review'
+ click_button 'Submit review'
+ end
- wait_for_requests
+ wait_for_requests
- page.within '.discussions-counter' do
- expect(page).to have_content('All threads resolved')
- end
+ page.within '.discussions-counter' do
+ expect(page).to have_content('All threads resolved')
end
end
+ end
- context 'thread is resolved' do
- let!(:active_discussion) { create(:diff_note_on_merge_request, :resolved, noteable: merge_request, project: project).to_discussion }
+ context 'thread is resolved' do
+ let!(:active_discussion) { create(:diff_note_on_merge_request, :resolved, noteable: merge_request, project: project).to_discussion }
- before do
- active_discussion.resolve!(@current_user)
+ before do
+ active_discussion.resolve!(@current_user)
- visit_diffs
+ visit_diffs
- page.find('.js-diff-comment-avatar').click
- end
+ page.find('.js-diff-comment-avatar').click
+ end
- it 'publishes comment right away and unresolves the thread' do
- expect(active_discussion.resolved?).to eq(true)
+ it 'publishes comment right away and unresolves the thread' do
+ expect(active_discussion.resolved?).to eq(true)
- write_reply_to_discussion(button_text: 'Add comment now', unresolve: true)
+ write_reply_to_discussion(button_text: 'Add comment now', unresolve: true)
- page.within '.discussions-counter' do
- expect(page).to have_content('1 unresolved thread')
- end
+ page.within '.discussions-counter' do
+ expect(page).to have_content('1 unresolved thread')
end
+ end
- it 'publishes review and unresolves the thread' do
- expect(active_discussion.resolved?).to eq(true)
+ it 'publishes review and unresolves the thread' do
+ expect(active_discussion.resolved?).to eq(true)
- wait_for_requests
+ wait_for_requests
- write_reply_to_discussion(button_text: 'Start a review', unresolve: true)
+ write_reply_to_discussion(button_text: 'Start a review', unresolve: true)
- page.within('.review-bar-content') do
- click_button 'Submit review'
- end
+ page.within('.review-bar-content') do
+ click_button 'Finish review'
+ click_button 'Submit review'
+ end
- wait_for_requests
+ wait_for_requests
- page.within '.discussions-counter' do
- expect(page).to have_content('1 unresolved thread')
- end
+ page.within '.discussions-counter' do
+ expect(page).to have_content('1 unresolved thread')
end
end
end
diff --git a/spec/features/merge_request/user_comments_on_diff_spec.rb b/spec/features/merge_request/user_comments_on_diff_spec.rb
index 99756da51e4..06b29969775 100644
--- a/spec/features/merge_request/user_comments_on_diff_spec.rb
+++ b/spec/features/merge_request/user_comments_on_diff_spec.rb
@@ -14,7 +14,6 @@ RSpec.describe 'User comments on a diff', :js do
let(:user) { create(:user) }
before do
- stub_feature_flags(bootstrap_confirmation_modals: false)
project.add_maintainer(user)
sign_in(user)
diff --git a/spec/features/merge_request/user_creates_merge_request_spec.rb b/spec/features/merge_request/user_creates_merge_request_spec.rb
index a3dc3079374..2bf8e9ba6a4 100644
--- a/spec/features/merge_request/user_creates_merge_request_spec.rb
+++ b/spec/features/merge_request/user_creates_merge_request_spec.rb
@@ -30,7 +30,6 @@ RSpec.describe "User creates a merge request", :js do
it "shows merge request form" do
page.within('.merge-request-form') do
- expect(page.find('#merge_request_title')['placeholder']).to eq 'Title'
expect(page.find('#merge_request_description')['placeholder']).to eq 'Describe the goal of the changes and what reviewers should be aware of.'
end
end
@@ -100,7 +99,7 @@ RSpec.describe "User creates a merge request", :js do
click_button("Compare branches and continue")
- expect(page).to have_css("h3.page-title", text: "New merge request")
+ expect(page).to have_text _('New merge request')
page.within("form#new_merge_request") do
fill_in("Title", with: title)
diff --git a/spec/features/merge_request/user_posts_diff_notes_spec.rb b/spec/features/merge_request/user_posts_diff_notes_spec.rb
index 64715f9234a..8a310aba77b 100644
--- a/spec/features/merge_request/user_posts_diff_notes_spec.rb
+++ b/spec/features/merge_request/user_posts_diff_notes_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe 'Merge request > User posts diff notes', :js do
project.add_developer(user)
sign_in(user)
- stub_feature_flags(bootstrap_confirmation_modals: false)
+ stub_const('Gitlab::QueryLimiting::Transaction::THRESHOLD', 104)
end
context 'when hovering over a parallel view diff file' do
diff --git a/spec/features/merge_request/user_posts_notes_spec.rb b/spec/features/merge_request/user_posts_notes_spec.rb
index ad602afe68a..844ef6133c8 100644
--- a/spec/features/merge_request/user_posts_notes_spec.rb
+++ b/spec/features/merge_request/user_posts_notes_spec.rb
@@ -18,7 +18,6 @@ RSpec.describe 'Merge request > User posts notes', :js do
end
before do
- stub_feature_flags(bootstrap_confirmation_modals: false)
project.add_maintainer(user)
sign_in(user)
@@ -158,7 +157,7 @@ RSpec.describe 'Merge request > User posts notes', :js do
page.within("#note_#{note.id}") do
expect(find('.current-note-edit-form', visible: true)).to be_visible
expect(find('.note-edit-form', visible: true)).to be_visible
- expect(find(:css, '.note-body > .note-text', visible: false)).not_to be_visible
+ expect(find(:css, '.note-body .note-text', visible: false)).not_to be_visible
end
end
diff --git a/spec/features/merge_request/user_resolves_conflicts_spec.rb b/spec/features/merge_request/user_resolves_conflicts_spec.rb
index 982e75760d7..a04ca4e789c 100644
--- a/spec/features/merge_request/user_resolves_conflicts_spec.rb
+++ b/spec/features/merge_request/user_resolves_conflicts_spec.rb
@@ -178,23 +178,6 @@ RSpec.describe 'Merge request > User resolves conflicts', :js do
end
end
- context 'sidebar' do
- let(:merge_request) { create_merge_request('conflict-resolvable') }
-
- before do
- project.add_developer(user)
- sign_in(user)
-
- visit conflicts_project_merge_request_path(project, merge_request)
- end
-
- it 'displays reviewers' do
- page.within '.issuable-sidebar' do
- expect(page).to have_selector('[data-testid="reviewer"]', count: 1)
- end
- end
- end
-
unresolvable_conflicts = {
'conflict-too-large' => 'when the conflicts contain a large file',
'conflict-binary-file' => 'when the conflicts contain a binary file',
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 fca40dc7edc..0e9ff98c3e1 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
@@ -83,7 +83,6 @@ RSpec.describe 'Merge request > User sees avatars on diff notes', :js do
%w(parallel).each do |view|
context "#{view} view" do
before do
- stub_feature_flags(bootstrap_confirmation_modals: false)
visit diffs_project_merge_request_path(project, merge_request, view: view)
wait_for_requests
diff --git a/spec/features/merge_request/user_sees_deployment_widget_spec.rb b/spec/features/merge_request/user_sees_deployment_widget_spec.rb
index 01cc58777ba..81034caaee2 100644
--- a/spec/features/merge_request/user_sees_deployment_widget_spec.rb
+++ b/spec/features/merge_request/user_sees_deployment_widget_spec.rb
@@ -109,10 +109,12 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
end
context 'with stop action' do
- let(:manual) { create(:ci_build, :manual, pipeline: pipeline, name: 'close_app') }
+ let(:manual) do
+ create(:ci_build, :manual, pipeline: pipeline,
+ name: 'close_app', environment: environment.name)
+ end
before do
- stub_feature_flags(bootstrap_confirmation_modals: false)
build.success!
deployment.update!(on_stop: manual.name)
visit project_merge_request_path(project, merge_request)
diff --git a/spec/features/merge_request/user_sees_discussions_spec.rb b/spec/features/merge_request/user_sees_discussions_spec.rb
index d79763ba5e0..cc477e363a4 100644
--- a/spec/features/merge_request/user_sees_discussions_spec.rb
+++ b/spec/features/merge_request/user_sees_discussions_spec.rb
@@ -62,7 +62,7 @@ RSpec.describe 'Merge request > User sees threads', :js do
within(".discussion[data-discussion-id='#{discussion_id}']") do
find_field('Reply…').click
fill_in 'note[note]', with: 'Test!'
- click_button 'Comment'
+ click_button 'Reply'
expect(page).to have_css('.note', count: 2)
end
diff --git a/spec/features/merge_request/user_sees_versions_spec.rb b/spec/features/merge_request/user_sees_versions_spec.rb
index 2b856811e02..4465d7e29be 100644
--- a/spec/features/merge_request/user_sees_versions_spec.rb
+++ b/spec/features/merge_request/user_sees_versions_spec.rb
@@ -101,6 +101,7 @@ RSpec.describe 'Merge request > User sees versions', :js do
outdated_diff_note.save!
refresh
+ wait_for_requests
expect(page).to have_css(".diffs .notes[data-discussion-id='#{outdated_diff_note.discussion_id}']")
end
diff --git a/spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb b/spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb
index f637186ec67..b214486b3c1 100644
--- a/spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb
+++ b/spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb
@@ -10,16 +10,6 @@ RSpec.describe 'Project > Merge request > View user status' do
subject { visit merge_request_path(merge_request) }
- describe 'the status of the merge request author' do
- before do
- stub_feature_flags(updated_mr_header: false)
- end
-
- it_behaves_like 'showing user status' do
- let(:user_with_status) { merge_request.author }
- end
- end
-
context 'for notes', :js do
describe 'the status of the author of a note on a merge request' do
let(:note) { create(:note, noteable: merge_request, project: project, author: create(:user)) }