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-11-17 14:33:21 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-11-17 14:33:21 +0300
commit7021455bd1ed7b125c55eb1b33c5a01f2bc55ee0 (patch)
tree5bdc2229f5198d516781f8d24eace62fc7e589e9 /spec/features/merge_request
parent185b095e93520f96e9cfc31d9c3e69b498cdab7c (diff)
Add latest changes from gitlab-org/gitlab@15-6-stable-eev15.6.0-rc42
Diffstat (limited to 'spec/features/merge_request')
-rw-r--r--spec/features/merge_request/user_accepts_merge_request_spec.rb2
-rw-r--r--spec/features/merge_request/user_edits_assignees_sidebar_spec.rb2
-rw-r--r--spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb4
-rw-r--r--spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb2
-rw-r--r--spec/features/merge_request/user_sees_deployment_widget_spec.rb19
-rw-r--r--spec/features/merge_request/user_sees_diff_spec.rb14
-rw-r--r--spec/features/merge_request/user_sees_discussions_navigation_spec.rb222
-rw-r--r--spec/features/merge_request/user_sees_merge_widget_spec.rb141
8 files changed, 324 insertions, 82 deletions
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 159306b28d8..b50e6779e07 100644
--- a/spec/features/merge_request/user_accepts_merge_request_spec.rb
+++ b/spec/features/merge_request/user_accepts_merge_request_spec.rb
@@ -18,6 +18,8 @@ RSpec.describe 'User accepts a merge request', :js, :sidekiq_might_not_need_inli
click_button('Merge')
+ puts merge_request.short_merged_commit_sha
+
expect(page).to have_content("Changes merged into #{merge_request.target_branch} with #{merge_request.short_merged_commit_sha}")
end
diff --git a/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb b/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
index 0dd87ac3e24..59b5923b2a1 100644
--- a/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
+++ b/spec/features/merge_request/user_edits_assignees_sidebar_spec.rb
@@ -88,7 +88,7 @@ RSpec.describe 'Merge request > User edits assignees sidebar', :js do
end
context 'when GraphQL assignees widget feature flag is enabled' do
- let(:sidebar_assignee_dropdown_item) { sidebar_assignee_block.find(".dropdown-item", text: assignee.username ) }
+ let(:sidebar_assignee_dropdown_item) { sidebar_assignee_block.find(".dropdown-item", text: assignee.username) }
let(:sidebar_assignee_dropdown_tooltip) { sidebar_assignee_dropdown_item['title'] }
context 'when user is an owner' do
diff --git a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
index 21f96299958..abf916c72b3 100644
--- a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
+++ b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb
@@ -151,7 +151,7 @@ RSpec.describe 'Merge request > User merges when pipeline succeeds', :js do
# Wait for the `ci_status` and `merge_check` requests
wait_for_requests
- page.within('.mr-section-container') do
+ page.within('.mr-state-widget') do
expect(page).to have_content('Something went wrong. Try again.')
end
end
@@ -170,7 +170,7 @@ RSpec.describe 'Merge request > User merges when pipeline succeeds', :js do
# Wait for the `ci_status` and `merge_check` requests
wait_for_requests
- page.within('.mr-section-container') do
+ page.within('.mr-state-widget') do
expect(page).to have_content('Something went wrong. Try again.')
end
end
diff --git a/spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb b/spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb
index 60ea168940a..cf4875a7a25 100644
--- a/spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb
+++ b/spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe 'Merge request > User scrolls to note on load', :js do
wait_for_all_requests
- expect(page).to have_selector("#{fragment_id}")
+ expect(page).to have_selector(fragment_id.to_s)
page_scroll_y = page.evaluate_script("window.scrollY")
fragment_position_top = page.evaluate_script("Math.round(document.querySelector('#{fragment_id}').getBoundingClientRect().top + window.pageYOffset)")
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 63ac7862b06..6f8ecf5f5c2 100644
--- a/spec/features/merge_request/user_sees_deployment_widget_spec.rb
+++ b/spec/features/merge_request/user_sees_deployment_widget_spec.rb
@@ -18,6 +18,11 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
let(:build) { create(:ci_build, :with_deployment, environment: environment.name, pipeline: pipeline) }
let!(:deployment) { build.deployment }
+ def assert_env_widget(text, env_name)
+ expect(find('.js-deploy-env-name')[:title]).to have_text(env_name)
+ expect(page).to have_content(text)
+ end
+
before do
merge_request.update!(merge_commit_sha: sha)
project.add_member(user, role)
@@ -33,7 +38,7 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Deployed to #{environment.name}")
+ assert_env_widget("Deployed to", environment.name)
expect(find('.js-deploy-time')['title']).to eq(deployment.created_at.to_time.in_time_zone.to_s(:medium))
end
@@ -47,8 +52,8 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
wait_for_requests
expect(page).to have_selector('.js-deployment-info', count: 1)
- expect(page).to have_content("#{environment.name}")
- expect(page).not_to have_content("#{environment2.name}")
+ expect(find('.js-deploy-env-name')[:title]).to have_text(environment.name)
+ expect(find('.js-deploy-env-name')[:title]).not_to have_text(environment2.name)
end
end
end
@@ -62,7 +67,7 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Failed to deploy to #{environment.name}")
+ assert_env_widget("Failed to deploy to", environment.name)
expect(page).not_to have_css('.js-deploy-time')
end
end
@@ -76,7 +81,7 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Deploying to #{environment.name}")
+ assert_env_widget("Deploying to", environment.name)
expect(page).not_to have_css('.js-deploy-time')
end
end
@@ -89,7 +94,7 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Will deploy to #{environment.name}")
+ assert_env_widget("Will deploy to", environment.name)
expect(page).not_to have_css('.js-deploy-time')
end
end
@@ -103,7 +108,7 @@ RSpec.describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Canceled deployment to #{environment.name}")
+ assert_env_widget("Canceled deployment to", environment.name)
expect(page).not_to have_css('.js-deploy-time')
end
end
diff --git a/spec/features/merge_request/user_sees_diff_spec.rb b/spec/features/merge_request/user_sees_diff_spec.rb
index 2e65183d26f..0bae019793c 100644
--- a/spec/features/merge_request/user_sees_diff_spec.rb
+++ b/spec/features/merge_request/user_sees_diff_spec.rb
@@ -38,6 +38,20 @@ RSpec.describe 'Merge request > User sees diff', :js do
end
end
+ context 'when linking to a line' do
+ let(:note) { create :diff_note_on_merge_request, project: project, noteable: merge_request }
+ let(:line) { note.diff_file.highlighted_diff_lines.last }
+ let(:line_code) { line.line_code }
+
+ before do
+ visit "#{diffs_project_merge_request_path(project, merge_request)}##{line_code}"
+ end
+
+ it 'shows the linked line' do
+ expect(page).to have_selector("[id='#{line_code}']", visible: true, obscured: false)
+ end
+ end
+
context 'when merge request has overflow' do
it 'displays warning' do
allow(Commit).to receive(:max_diff_options).and_return(max_files: 3)
diff --git a/spec/features/merge_request/user_sees_discussions_navigation_spec.rb b/spec/features/merge_request/user_sees_discussions_navigation_spec.rb
new file mode 100644
index 00000000000..9fbe7662fc0
--- /dev/null
+++ b/spec/features/merge_request/user_sees_discussions_navigation_spec.rb
@@ -0,0 +1,222 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Merge request > User sees discussions navigation', :js do
+ let_it_be(:project) { create(:project, :public, :repository) }
+ let_it_be(:user) { project.creator }
+ let_it_be(:merge_request) { create(:merge_request, source_project: project) }
+
+ before do
+ # FIXME: before removing this please fix discussions navigation with this flag enabled
+ stub_feature_flags(moved_mr_sidebar: false)
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ describe 'Code discussions' do
+ let!(:position) do
+ build(:text_diff_position, :added,
+ file: "files/images/wm.svg",
+ new_line: 1,
+ diff_refs: merge_request.diff_refs
+ )
+ end
+
+ let!(:first_discussion) do
+ create(:diff_note_on_merge_request,
+ noteable: merge_request,
+ project: project,
+ position: position
+ ).to_discussion
+ end
+
+ let!(:second_discussion) do
+ create(:diff_note_on_merge_request,
+ noteable: merge_request,
+ project: project,
+ position: position
+ ).to_discussion
+ end
+
+ let(:first_discussion_selector) { ".discussion[data-discussion-id='#{first_discussion.id}']" }
+ let(:second_discussion_selector) { ".discussion[data-discussion-id='#{second_discussion.id}']" }
+
+ shared_examples 'a page with a thread navigation' do
+ context 'with active threads' do
+ it 'navigates to the first thread' do
+ goto_next_thread
+ expect(page).to have_selector(first_discussion_selector, obscured: false)
+ end
+
+ it 'navigates to the last thread' do
+ goto_previous_thread
+ expect(page).to have_selector(second_discussion_selector, obscured: false)
+ end
+
+ it 'navigates through active threads' do
+ goto_next_thread
+ goto_next_thread
+ expect(page).to have_selector(second_discussion_selector, obscured: false)
+ end
+
+ it 'cycles back to the first thread' do
+ goto_next_thread
+ goto_next_thread
+ goto_next_thread
+ expect(page).to have_selector(first_discussion_selector, obscured: false)
+ end
+
+ it 'cycles back to the last thread' do
+ goto_previous_thread
+ goto_previous_thread
+ goto_previous_thread
+ expect(page).to have_selector(second_discussion_selector, obscured: false)
+ end
+ end
+
+ context 'with resolved threads' do
+ let!(:resolved_discussion) do
+ create(:diff_note_on_merge_request,
+ noteable: merge_request,
+ project: project,
+ position: position
+ ).to_discussion
+ end
+
+ let(:resolved_discussion_selector) { ".discussion[data-discussion-id='#{resolved_discussion.id}']" }
+
+ before do
+ # :resolved attr doesn't actually resolve the thread but just collapses it
+ page.within(resolved_discussion_selector) do
+ click_button text: 'Resolve thread'
+ end
+ page.execute_script("window.scrollTo(0,0)")
+ end
+
+ it 'excludes resolved threads during navigation' do
+ goto_next_thread
+ goto_next_thread
+ goto_next_thread
+ expect(page).to have_selector(first_discussion_selector, obscured: false)
+ end
+ end
+ end
+
+ describe "Overview page discussions navigation" do
+ before do
+ visit project_merge_request_path(project, merge_request)
+ end
+
+ it_behaves_like 'a page with a thread navigation'
+
+ context 'with collapsed threads' do
+ before do
+ page.within(first_discussion_selector) do
+ click_button 'Hide thread'
+ end
+ end
+
+ it 'expands threads during navigation' do
+ goto_next_thread
+ expect(page).to have_selector "#note_#{first_discussion.first_note.id}"
+ end
+ end
+ end
+
+ describe "Changes page discussions navigation" do
+ before do
+ visit diffs_project_merge_request_path(project, merge_request)
+ end
+
+ it_behaves_like 'a page with a thread navigation'
+ end
+ end
+
+ describe 'Merge request discussions' do
+ shared_examples 'a page with no code discussions' do
+ let!(:first_discussion) do
+ create(:discussion_note_on_merge_request,
+ noteable: merge_request,
+ project: project
+ ).to_discussion
+ end
+
+ let!(:second_discussion) do
+ create(:discussion_note_on_merge_request,
+ noteable: merge_request,
+ project: project
+ ).to_discussion
+ end
+
+ let(:first_discussion_selector) { ".discussion[data-discussion-id='#{first_discussion.id}']" }
+ let(:second_discussion_selector) { ".discussion[data-discussion-id='#{second_discussion.id}']" }
+
+ describe "Changes page discussions navigation" do
+ it 'navigates to the first discussion on the Overview page' do
+ goto_next_thread
+ expect(page).to have_selector(first_discussion_selector, obscured: false)
+ end
+
+ it 'navigates to the last discussion on the Overview page' do
+ goto_previous_thread
+ expect(page).to have_selector(second_discussion_selector, obscured: false)
+ end
+ end
+ end
+
+ context 'on changes page' do
+ before do
+ visit diffs_project_merge_request_path(project, merge_request)
+ end
+
+ it_behaves_like 'a page with no code discussions'
+ end
+
+ context 'on commits page' do
+ before do
+ # we can't go directly to the commits page since it doesn't load discussions
+ visit project_merge_request_path(project, merge_request)
+ click_link 'Commits'
+ end
+
+ it_behaves_like 'a page with no code discussions'
+ end
+
+ context 'on pipelines page' do
+ before do
+ visit project_merge_request_path(project, merge_request)
+ click_link 'Pipelines'
+ end
+
+ it_behaves_like 'a page with no code discussions'
+ end
+ end
+
+ def goto_next_thread
+ begin
+ # this is required when moved_mr_sidebar is enabled
+ page.within('.issue-sticky-header') do
+ click_button 'Go to next unresolved thread'
+ end
+ rescue StandardError
+ click_button 'Go to next unresolved thread'
+ end
+ wait_for_scroll_end
+ end
+
+ def goto_previous_thread
+ begin
+ page.within('.issue-sticky-header') do
+ click_button 'Go to previous unresolved thread'
+ end
+ rescue StandardError
+ click_button 'Go to previous unresolved thread'
+ end
+ wait_for_scroll_end
+ end
+
+ def wait_for_scroll_end
+ sleep(1)
+ end
+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 77ac6fac22f..c4a29c1fb07 100644
--- a/spec/features/merge_request/user_sees_merge_widget_spec.rb
+++ b/spec/features/merge_request/user_sees_merge_widget_spec.rb
@@ -14,15 +14,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
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
+ find('[data-testid="toggle-button"]').click
end
before do
project.add_maintainer(user)
project_only_mwps.add_maintainer(user)
sign_in(user)
-
- stub_feature_flags(refactor_mr_widget_test_summary: false)
end
context 'new merge request', :sidekiq_might_not_need_inline do
@@ -64,7 +62,8 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
wait_for_requests
page.within('.js-pre-deployment') do
- expect(page).to have_content("Deployed to #{environment.name}")
+ expect(find('.js-deploy-env-name')[:title]).to have_text(environment.name)
+ expect(page).to have_content("Deployed to")
expect(find('.js-deploy-url')[:href]).to include(environment.formatted_external_url)
end
end
@@ -343,7 +342,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
# Wait for the `ci_status` and `merge_check` requests
wait_for_requests
- page.within('.mr-section-container') do
+ page.within('.mr-state-widget') do
expect(page).to have_content('Something went wrong.')
end
end
@@ -364,7 +363,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
# Wait for the `ci_status` and `merge_check` requests
wait_for_requests
- page.within('.mr-section-container') do
+ page.within('.mr-state-widget') do
expect(page).to have_content('Something went wrong.')
end
end
@@ -399,9 +398,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
it 'updates the MR widget', :sidekiq_might_not_need_inline do
click_button 'Merge'
- page.within('.mr-widget-body') do
- expect(page).to have_content('An error occurred while merging')
- end
+ expect(page).to have_content('An error occurred while merging')
end
end
@@ -531,7 +528,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows parsing status' do
- expect(page).to have_content('Test summary results are being parsed')
+ expect(page).to have_content('Test summary results are loading')
end
end
@@ -546,7 +543,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows parsed results' do
- expect(page).to have_content('Test summary contained')
+ expect(page).to have_content('Test summary:')
end
end
@@ -560,7 +557,7 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows the error state' do
- expect(page).to have_content('Test summary failed loading results')
+ expect(page).to have_content('Test summary failed to load results')
end
end
@@ -607,13 +604,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the new failure' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
click_expand_button
- expect(page).to have_content('Test summary contained 1 failed out of 2 total tests')
- within(".js-report-section-container") do
- expect(page).to have_content('rspec found no changed test results out of 1 total test')
- expect(page).to have_content('junit found 1 failed out of 1 total test')
+ expect(page).to have_content('Test summary: 1 failed, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: no changed test results, 1 total test')
+ expect(page).to have_content('junit: 1 failed, 1 total test')
expect(page).to have_content('New')
expect(page).to have_content('addTest')
end
@@ -622,15 +619,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'addTest'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'addTest'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('addTest')
expect(page).to have_content('6.66')
expect(page).to have_content(sample_java_failed_message.gsub(/\s+/, ' ').strip)
@@ -655,13 +652,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the existing failure' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
click_expand_button
- expect(page).to have_content('Test summary contained 1 failed out of 2 total tests')
- within(".js-report-section-container") do
- expect(page).to have_content('rspec found 1 failed out of 1 total test')
- expect(page).to have_content('junit found no changed test results out of 1 total test')
+ expect(page).to have_content('Test summary: 1 failed, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: 1 failed, 1 total test')
+ expect(page).to have_content('junit: no changed test results, 1 total test')
expect(page).to have_content('Test#sum when a is 1 and b is 3 returns summary')
end
end
@@ -669,15 +666,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'Test#sum when a is 1 and b is 3 returns summary'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'Test#sum when a is 1 and b is 3 returns summary'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('Test#sum when a is 1 and b is 3 returns summary')
expect(page).to have_content('2.22')
expect(page).to have_content(sample_rspec_failed_message.gsub(/\s+/, ' ').strip)
@@ -702,13 +699,14 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the resolved failure' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
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
- expect(page).to have_content('rspec found no changed test results out of 1 total test')
- expect(page).to have_content('junit found 1 fixed test result out of 1 total test')
+ expect(page).to have_content('Test summary: 1 fixed test result, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: no changed test results, 1 total test')
+ expect(page).to have_content('junit: 1 fixed test result, 1 total test')
+ expect(page).to have_content('Fixed')
expect(page).to have_content('addTest')
end
end
@@ -716,15 +714,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'addTest'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'addTest'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('addTest')
expect(page).to have_content('5.55')
end
@@ -748,13 +746,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the new error' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
click_expand_button
- expect(page).to have_content('Test summary contained 1 error out of 2 total tests')
- within(".js-report-section-container") do
- expect(page).to have_content('rspec found no changed test results out of 1 total test')
- expect(page).to have_content('junit found 1 error out of 1 total test')
+ expect(page).to have_content('Test summary: 1 error, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: no changed test results, 1 total test')
+ expect(page).to have_content('junit: 1 error, 1 total test')
expect(page).to have_content('New')
expect(page).to have_content('addTest')
end
@@ -763,15 +761,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'addTest'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'addTest'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('addTest')
expect(page).to have_content('8.88')
end
@@ -795,13 +793,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the existing error' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
click_expand_button
- expect(page).to have_content('Test summary contained 1 error out of 2 total tests')
- within(".js-report-section-container") do
- expect(page).to have_content('rspec found 1 error out of 1 total test')
- expect(page).to have_content('junit found no changed test results out of 1 total test')
+ expect(page).to have_content('Test summary: 1 error, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: 1 error, 1 total test')
+ expect(page).to have_content('junit: no changed test results, 1 total test')
expect(page).to have_content('Test#sum when a is 4 and b is 4 returns summary')
end
end
@@ -809,15 +807,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'Test#sum when a is 4 and b is 4 returns summary'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'Test#sum when a is 4 and b is 4 returns summary'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('Test#sum when a is 4 and b is 4 returns summary')
expect(page).to have_content('4.44')
end
@@ -841,13 +839,14 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the resolved error' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
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
- expect(page).to have_content('rspec found no changed test results out of 1 total test')
- expect(page).to have_content('junit found 1 fixed test result out of 1 total test')
+ expect(page).to have_content('Test summary: 1 fixed test result, 2 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: no changed test results, 1 total test')
+ expect(page).to have_content('junit: 1 fixed test result, 1 total test')
+ expect(page).to have_content('Fixed')
expect(page).to have_content('addTest')
end
end
@@ -855,15 +854,15 @@ 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
+ within('[data-testid="widget-extension"]') do
click_expand_button
- within(".js-report-section-container") do
- click_button 'addTest'
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ click_link 'addTest'
end
end
- within("#modal-mrwidget-reports") do
+ within('[data-testid="test-case-details-modal"]') do
expect(page).to have_content('addTest')
expect(page).to have_content('5.55')
end
@@ -895,13 +894,13 @@ RSpec.describe 'Merge request > User sees merge widget', :js do
end
it 'shows test reports summary which includes the resolved failure' do
- within(".js-reports-container") do
+ within('[data-testid="widget-extension"]') do
click_expand_button
- expect(page).to have_content('Test summary contained 20 failed out of 20 total tests')
- within(".js-report-section-container") do
- expect(page).to have_content('rspec found 10 failed out of 10 total tests')
- expect(page).to have_content('junit found 10 failed out of 10 total tests')
+ expect(page).to have_content('Test summary: 20 failed, 20 total tests')
+ within('[data-testid="widget-extension-collapsed-section"]') do
+ expect(page).to have_content('rspec: 10 failed, 10 total tests')
+ expect(page).to have_content('junit: 10 failed, 10 total tests')
expect(page).to have_content('Test#sum when a is 1 and b is 3 returns summary', count: 2)
end