diff options
Diffstat (limited to 'spec/features/merge_request')
13 files changed, 58 insertions, 104 deletions
diff --git a/spec/features/merge_request/batch_comments_spec.rb b/spec/features/merge_request/batch_comments_spec.rb index bccdc3c4c62..f01217df8c5 100644 --- a/spec/features/merge_request/batch_comments_spec.rb +++ b/spec/features/merge_request/batch_comments_spec.rb @@ -74,6 +74,24 @@ RSpec.describe 'Merge request > Batch comments', :js do expect(page).to have_selector('.draft-note-component', text: 'Testing update') end + context 'multiple times on the same diff line' do + it 'shows both drafts at once' do + write_diff_comment + + # All of the Diff helpers like click_diff_line (or write_diff_comment) + # fail very badly when run a second time. + # This recreates the relevant logic. + line = find_by_scrolling("[id='#{sample_compare.changes[0][:line_code]}']") + line.hover + line.find('.js-add-diff-note-button').click + + write_comment(text: 'A second draft!', button_text: 'Add to review') + + expect(page).to have_text('Line is wrong') + expect(page).to have_text('A second draft!') + 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...') } diff --git a/spec/features/merge_request/close_reopen_report_toggle_spec.rb b/spec/features/merge_request/close_reopen_report_toggle_spec.rb index dea9a10a4ec..5e9400935c3 100644 --- a/spec/features/merge_request/close_reopen_report_toggle_spec.rb +++ b/spec/features/merge_request/close_reopen_report_toggle_spec.rb @@ -24,14 +24,14 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do context 'close/reopen/report toggle' do it 'opens a dropdown when toggle is clicked' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(container).to have_link("Close merge request") expect(container).to have_link('Report abuse') end it 'links to Report Abuse' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click click_link 'Report abuse' expect(page).to have_content('Report abuse to admin') @@ -42,7 +42,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do let(:issuable) { create(:merge_request, :opened, source_project: project) } it 'shows the `Edit` and `Mark as draft` buttons' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(container).to have_link('Edit') expect(container).to have_link('Mark as draft') @@ -56,7 +56,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do let(:issuable) { create(:merge_request, :closed, source_project: project) } it 'shows both the `Edit` and `Reopen` button' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(container).to have_link('Edit') expect(container).to have_link('Report abuse') @@ -68,7 +68,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do let(:issuable) { create(:merge_request, :closed, source_project: project, author: user) } it 'shows both the `Edit` and `Reopen` button' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(container).to have_link('Edit') expect(container).to have_link('Reopen merge request') 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 a7bc2a062af..d69295744f7 100644 --- a/spec/features/merge_request/merge_request_discussion_lock_spec.rb +++ b/spec/features/merge_request/merge_request_discussion_lock_spec.rb @@ -90,7 +90,7 @@ RSpec.describe 'Merge Request Discussion Lock', :js do end it 'the user can lock the merge_request' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(page).to have_content('Lock merge request') end @@ -103,7 +103,7 @@ RSpec.describe 'Merge Request Discussion Lock', :js do end it 'the user can unlock the merge_request' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(page).to have_content('Unlock merge request') 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 fd33731cb7b..ffaf403e873 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(remove_user_attributes_projects: false) project.add_maintainer(user) sign_in(user) diff --git a/spec/features/merge_request/user_comments_on_merge_request_spec.rb b/spec/features/merge_request/user_comments_on_merge_request_spec.rb index ec1e2fea851..dbcfc2b968f 100644 --- a/spec/features/merge_request/user_comments_on_merge_request_spec.rb +++ b/spec/features/merge_request/user_comments_on_merge_request_spec.rb @@ -10,7 +10,6 @@ RSpec.describe 'User comments on a merge request', :js do let(:user) { create(:user) } before do - stub_feature_flags(remove_user_attributes_projects: false) project.add_maintainer(user) sign_in(user) 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 f5b5460769e..07d99a786ba 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 @@ -6,8 +6,8 @@ RSpec.describe 'Batch diffs', :js do include MergeRequestDiffHelpers include RepoHelpers - let(:project) { create(:project, :repository) } - let(:merge_request) { create(:merge_request, source_project: project, source_branch: 'master', target_branch: 'empty-branch') } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:merge_request) { create(:merge_request, source_project: project, source_branch: 'master', target_branch: 'empty-branch') } before do sign_in(project.first_owner) diff --git a/spec/features/merge_request/user_jumps_to_discussion_spec.rb b/spec/features/merge_request/user_jumps_to_discussion_spec.rb deleted file mode 100644 index 9bded1c5572..00000000000 --- a/spec/features/merge_request/user_jumps_to_discussion_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'User jumps to the next unresolved discussion', :js do - let(:project) { create(:project, :repository) } - let(:merge_request) do - create(:merge_request_with_diffs, source_project: project, target_project: project, source_branch: 'merge-test') - end - - let(:user) { create(:user) } - - before do - create(:discussion_note, noteable: merge_request, project: project, author: user) - - project.add_maintainer(user) - sign_in(user) - - visit(diffs_project_merge_request_path(project, merge_request)) - - wait_for_requests - end - - it 'jumps to overview tab' do - find('.discussion-next-btn').click - - expect(page).to have_css('.notes-tab.active') - end -end diff --git a/spec/features/merge_request/user_manages_subscription_spec.rb b/spec/features/merge_request/user_manages_subscription_spec.rb index 9fb85957979..a8d59a6ffb5 100644 --- a/spec/features/merge_request/user_manages_subscription_spec.rb +++ b/spec/features/merge_request/user_manages_subscription_spec.rb @@ -43,22 +43,18 @@ RSpec.describe 'User manages subscription', :js do it 'toggles subscription' do wait_for_requests - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click expect(page).to have_selector('.gl-toggle:not(.is-checked)') find('[data-testid="notifications-toggle"] .gl-toggle').click wait_for_requests - click_button 'Toggle dropdown' - expect(page).to have_selector('.gl-toggle.is-checked') find('[data-testid="notifications-toggle"] .gl-toggle').click wait_for_requests - click_button 'Toggle dropdown' - expect(page).to have_selector('.gl-toggle:not(.is-checked)') end end diff --git a/spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb b/spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb index c3a61476442..d85f275b724 100644 --- a/spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb +++ b/spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb @@ -16,12 +16,12 @@ RSpec.describe 'Merge request > User marks merge request as draft', :js do end it 'toggles draft status' do - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click click_link 'Mark as draft' expect(page).to have_content("Draft: #{merge_request.title}") - click_button 'Toggle dropdown' + find('[data-testid="merge-request-actions"]').click page.within('.detail-page-header-actions') do click_link 'Mark as ready' 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 1eebb6c2e28..8af0e957c14 100644 --- a/spec/features/merge_request/user_posts_diff_notes_spec.rb +++ b/spec/features/merge_request/user_posts_diff_notes_spec.rb @@ -6,7 +6,7 @@ RSpec.describe 'Merge request > User posts diff notes', :js do include MergeRequestDiffHelpers include Spec::Support::Helpers::ModalHelpers - let(:merge_request) { create(:merge_request) } + let_it_be(:merge_request) { create(:merge_request) } let(:project) { merge_request.source_project } let(:user) { project.creator } let(:comment_button_class) { '.add-diff-note' } @@ -219,7 +219,7 @@ RSpec.describe 'Merge request > User posts diff notes', :js do end context 'with a match line' do - it 'does not allow commenting' do + it 'does not allow commenting', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/375024' do match_should_not_allow_commenting(find_by_scrolling('.match', match: :first)) end end 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 8225fcbfd89..a6c024be698 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 @@ -8,10 +8,11 @@ RSpec.describe 'Merge request > User sees avatars on diff notes', :js do include Spec::Support::Helpers::ModalHelpers include MergeRequestDiffHelpers - let(:project) { create(:project, :public, :repository) } - let(:user) { project.creator } - let(:merge_request) { create(:merge_request_with_diffs, source_project: project, author: user, title: 'Bug NS-04') } - let(:path) { 'files/ruby/popen.rb' } + let_it_be(:project) { create(:project, :public, :repository) } + let_it_be(:user) { project.creator } + let_it_be(:merge_request) { create(:merge_request_with_diffs, source_project: project, author: user, title: 'Bug NS-04') } + + let(:path) { 'files/ruby/popen.rb' } let(:position) do build(:text_diff_position, :added, file: path, @@ -22,10 +23,12 @@ 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 + before_all do project.add_maintainer(user) + end + + before do sign_in user - stub_feature_flags(gl_avatar_for_all_user_avatars: false) set_cookie('sidebar_collapsed', 'true') end 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 c2a0e528ea7..77ac6fac22f 100644 --- a/spec/features/merge_request/user_sees_merge_widget_spec.rb +++ b/spec/features/merge_request/user_sees_merge_widget_spec.rb @@ -13,13 +13,15 @@ RSpec.describe 'Merge request > User sees merge widget', :js do let(:merge_request) { create(:merge_request, source_project: project) } let(:merge_request_in_only_mwps_project) { create(:merge_request, source_project: project_only_mwps) } + def click_expand_button + find('[data-testid="report-section-expand-button"]').click + end + before do project.add_maintainer(user) project_only_mwps.add_maintainer(user) sign_in(user) - stub_feature_flags(refactor_mr_widgets_extensions: false) - stub_feature_flags(refactor_mr_widgets_extensions_user: false) stub_feature_flags(refactor_mr_widget_test_summary: false) end @@ -606,7 +608,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the new failure' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 failed out of 2 total tests') within(".js-report-section-container") do @@ -621,7 +623,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the new failure' do it 'shows the test report detail' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'addTest' @@ -654,7 +656,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the existing failure' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 failed out of 2 total tests') within(".js-report-section-container") do @@ -668,7 +670,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the existing failure' do it 'shows test report detail of it' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'Test#sum when a is 1 and b is 3 returns summary' @@ -701,7 +703,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the resolved failure' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 fixed test result out of 2 total tests') within(".js-report-section-container") do @@ -715,7 +717,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the resolved failure' do it 'shows test report detail of it' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'addTest' @@ -747,7 +749,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the new error' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 error out of 2 total tests') within(".js-report-section-container") do @@ -762,7 +764,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the new error' do it 'shows the test report detail' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'addTest' @@ -794,7 +796,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the existing error' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 error out of 2 total tests') within(".js-report-section-container") do @@ -808,7 +810,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the existing error' do it 'shows test report detail of it' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'Test#sum when a is 4 and b is 4 returns summary' @@ -840,7 +842,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the resolved error' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 1 fixed test result out of 2 total tests') within(".js-report-section-container") do @@ -854,7 +856,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do context 'when user clicks the resolved error' do it 'shows test report detail of it' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button within(".js-report-section-container") do click_button 'addTest' @@ -894,7 +896,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do it 'shows test reports summary which includes the resolved failure' do within(".js-reports-container") do - click_button 'Expand' + click_expand_button expect(page).to have_content('Test summary contained 20 failed out of 20 total tests') within(".js-report-section-container") do 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 deleted file mode 100644 index d3ea8b955f2..00000000000 --- a/spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'Project > Merge request > View user status' do - let(:project) { create(:project, :public, :repository) } - let(:merge_request) do - create(:merge_request, source_project: project, target_project: project, author: create(:user)) - end - - before do - stub_feature_flags(remove_user_attributes_projects: false) - end - - subject { visit merge_request_path(merge_request) } - - 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)) } - - it_behaves_like 'showing user status' do - let(:user_with_status) { note.author } - end - end - - describe 'the status of the author of a diff note on a merge request' do - let(:note) { create(:diff_note_on_merge_request, noteable: merge_request, project: project, author: create(:user)) } - - it_behaves_like 'showing user status' do - let(:user_with_status) { note.author } - end - end - end -end |