From 714ec1326a05bcee01f0953f01f16d8e0551d8bf Mon Sep 17 00:00:00 2001 From: Ross Byrne <robyrne@gitlab.com> Date: Wed, 14 Feb 2024 15:52:31 +0000 Subject: [PATCH] Fixing rubocop exceptions in tests no 11 --- .rubocop_todo/capybara/testid_finders.yml | 15 -------- .../user_sees_feature_flag_list_spec.rb | 4 +-- spec/features/projects/fork_spec.rb | 2 +- .../integrations/user_activates_jira_spec.rb | 2 +- .../user_views_designs_with_svg_xss_spec.rb | 2 +- .../projects/jobs/permissions_spec.rb | 2 +- .../projects/jobs/user_browses_job_spec.rb | 6 ++-- .../projects/jobs/user_browses_jobs_spec.rb | 28 ++++++++------- ...triggers_manual_job_with_variables_spec.rb | 8 ++--- spec/features/projects/jobs_spec.rb | 36 +++++++++---------- ..._member_cannot_leave_group_project_spec.rb | 2 +- .../members/groups_with_access_list_spec.rb | 2 +- ...r_adds_member_with_expiration_date_spec.rb | 2 +- .../features/projects/members/sorting_spec.rb | 2 +- spec/features/projects/packages_spec.rb | 4 +-- .../projects/pipeline_schedules_spec.rb | 30 +++++++++------- 16 files changed, 70 insertions(+), 77 deletions(-) diff --git a/.rubocop_todo/capybara/testid_finders.yml b/.rubocop_todo/capybara/testid_finders.yml index c674b7f46b1ca..558b21c7d3543 100644 --- a/.rubocop_todo/capybara/testid_finders.yml +++ b/.rubocop_todo/capybara/testid_finders.yml @@ -17,21 +17,6 @@ Capybara/TestidFinders: - 'spec/features/projects/compare_spec.rb' - 'spec/features/projects/environments/environment_spec.rb' - 'spec/features/projects/environments/environments_spec.rb' - - 'spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb' - - 'spec/features/projects/fork_spec.rb' - - 'spec/features/projects/integrations/user_activates_jira_spec.rb' - - 'spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb' - - 'spec/features/projects/jobs/permissions_spec.rb' - - 'spec/features/projects/jobs/user_browses_job_spec.rb' - - 'spec/features/projects/jobs/user_browses_jobs_spec.rb' - - 'spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb' - - 'spec/features/projects/jobs_spec.rb' - - 'spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb' - - 'spec/features/projects/members/groups_with_access_list_spec.rb' - - 'spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb' - - 'spec/features/projects/members/sorting_spec.rb' - - 'spec/features/projects/packages_spec.rb' - - 'spec/features/projects/pipeline_schedules_spec.rb' - 'spec/features/projects/pipelines/pipeline_spec.rb' - 'spec/features/projects/pipelines/pipelines_spec.rb' - 'spec/features/projects/releases/user_creates_release_spec.rb' diff --git a/spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb b/spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb index e2448887531ad..8832251db08b5 100644 --- a/spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb +++ b/spec/features/projects/feature_flags/user_sees_feature_flag_list_spec.rb @@ -42,7 +42,7 @@ expect_status_toggle_button_not_to_be_checked within_feature_flag_scopes do - expect(page.find('[data-testid="strategy-label"]')).to have_content('All Users: All Environments, review/*') + expect(find_by_testid('strategy-label')).to have_content('All Users: All Environments, review/*') end end end @@ -66,7 +66,7 @@ expect_status_toggle_button_to_be_checked within_feature_flag_scopes do - expect(page.find('[data-testid="strategy-label"]')).to have_content('All Users: production') + expect(find_by_testid('strategy-label')).to have_content('All Users: production') end end end diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb index e849f11001407..6821c09a6cd49 100644 --- a/spec/features/projects/fork_spec.rb +++ b/spec/features/projects/fork_spec.rb @@ -247,7 +247,7 @@ def submit_form(group_obj = group) visit project_path(project) - forks_count_button = find('[data-testid="forks-count"]') + forks_count_button = find_by_testid('forks-count') expect(forks_count_button).to have_content("2") end end diff --git a/spec/features/projects/integrations/user_activates_jira_spec.rb b/spec/features/projects/integrations/user_activates_jira_spec.rb index 942327cdfe8b8..9d5959b86bd3a 100644 --- a/spec/features/projects/integrations/user_activates_jira_spec.rb +++ b/spec/features/projects/integrations/user_activates_jira_spec.rb @@ -98,7 +98,7 @@ choose 'Use custom transitions' click_save_integration - within '[data-testid="issue-transition-mode"]' do + within_testid 'issue-transition-mode' do expect(page).to have_content('This field is required.') end diff --git a/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb b/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb index bbc54382ae672..c8c8e166db0c8 100644 --- a/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb +++ b/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb @@ -29,7 +29,7 @@ end it 'displays the SVG', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/381115' do - find("[data-testid='close-design']").click + find_by_testid('close-design').click expect(page).to have_selector("img.design-img[alt='xss.svg']", count: 1, visible: false) end diff --git a/spec/features/projects/jobs/permissions_spec.rb b/spec/features/projects/jobs/permissions_spec.rb index 7759875c2a599..e183ad98882ee 100644 --- a/spec/features/projects/jobs/permissions_spec.rb +++ b/spec/features/projects/jobs/permissions_spec.rb @@ -98,7 +98,7 @@ it_behaves_like 'project jobs page responds with status', 200 do it 'renders job', :js do - page.within('[data-testid="jobs-table"]') do + within_testid('jobs-table') do expect(page).to have_content("##{job.id}") .and have_content(job.sha[0..7]) .and have_content(job.ref) diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb index 1be1a58d212e5..6dc0d71d6ba69 100644 --- a/spec/features/projects/jobs/user_browses_job_spec.rb +++ b/spec/features/projects/jobs/user_browses_job_spec.rb @@ -28,7 +28,7 @@ # scroll to the top of the page first execute_script "window.scrollTo(0,0)" accept_gl_confirm(button_text: 'Erase job log') do - find('[data-testid="job-log-erase-link"]').click + find_by_testid('job-log-erase-link').click end wait_for_requests @@ -96,7 +96,7 @@ it 'searches for supplied substring' do find('[data-testid="job-log-search-box"] input').set('GroupsHelper') - find('[data-testid="search-button"]').click + find_by_testid('search-button').click expect(page).to have_content('26 results found for GroupsHelper') end @@ -104,7 +104,7 @@ it 'shows no results for supplied substring' do find('[data-testid="job-log-search-box"] input').set('YouWontFindMe') - find('[data-testid="search-button"]').click + find_by_testid('search-button').click expect(page).to have_content('No search results found') end diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb index 5c1dc36a31c26..545bfee4910db 100644 --- a/spec/features/projects/jobs/user_browses_jobs_spec.rb +++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb @@ -26,16 +26,18 @@ def visit_jobs_page end it 'shows a tab for All jobs and count' do - expect(page.find('[data-testid="jobs-all-tab"]').text).to include('All') - expect(page.find('[data-testid="jobs-all-tab"] .badge').text).to include('0') + expect(find_by_testid('jobs-all-tab').text).to include('All') + within_testid('jobs-all-tab') do + expect(page.find('.badge').text).to include('0') + end end it 'shows a tab for Finished jobs and count' do - expect(page.find('[data-testid="jobs-finished-tab"]').text).to include('Finished') + expect(find_by_testid('jobs-finished-tab').text).to include('Finished') end it 'updates the content when tab is clicked' do - page.find('[data-testid="jobs-finished-tab"]').click + find_by_testid('jobs-finished-tab').click wait_for_requests expect(page).to have_content('No jobs to show') @@ -68,7 +70,7 @@ def visit_jobs_page end it 'cancels a job successfully' do - page.find('[data-testid="cancel-button"]').click + find_by_testid('cancel-button').click wait_for_requests @@ -89,7 +91,7 @@ def visit_jobs_page end it 'retries a job successfully' do - page.find('[data-testid="retry"]').click + find_by_testid('retry').click wait_for_requests @@ -111,7 +113,7 @@ def visit_jobs_page end it 'shows the coverage' do - page.within('[data-testid="job-coverage"]') do + within_testid('job-coverage') do expect(page).to have_content('99.9%') end end @@ -125,7 +127,7 @@ def visit_jobs_page end it 'plays a job successfully' do - page.find('[data-testid="play-scheduled"]').click + find_by_testid('play-scheduled').click page.within '#play-job-modal' do page.find_button('OK').click @@ -137,7 +139,7 @@ def visit_jobs_page end it 'unschedules a job successfully' do - page.find('[data-testid="unschedule"]').click + find_by_testid('unschedule').click wait_for_requests @@ -191,19 +193,19 @@ def visit_jobs_page end it 'contains a link to the pipeline' do - expect(page.find('[data-testid="pipeline-id"]')).to have_content "##{pipeline.id}" + expect(find_by_testid('pipeline-id')).to have_content "##{pipeline.id}" end it 'contains a link to the job sha' do - expect(page.find('[data-testid="job-sha"]')).to have_content job.sha[0..7].to_s + expect(find_by_testid('job-sha')).to have_content job.sha[0..7].to_s end it 'contains a link to the job id' do - expect(page.find('[data-testid="job-id-link"]')).to have_content job.id.to_s + expect(find_by_testid('job-id-link')).to have_content job.id.to_s end it 'contains a link to the job ref' do - expect(page.find('[data-testid="job-ref"]')).to have_content job.ref.to_s + expect(find_by_testid('job-ref')).to have_content job.ref.to_s end end end diff --git a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb index 21274572352bc..3beea5bf26918 100644 --- a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb +++ b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb @@ -19,12 +19,12 @@ end it 'passes values correctly' do - page.within(find("[data-testid='ci-variable-row']")) do - find("[data-testid='ci-variable-key']").set('key_name') - find("[data-testid='ci-variable-value']").set('key_value') + within_testid('ci-variable-row') do + find_by_testid('ci-variable-key').set('key_name') + find_by_testid('ci-variable-value').set('key_value') end - find("[data-testid='run-manual-job-btn']").click + find_by_testid('run-manual-job-btn').click wait_for_requests diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb index 050ed4e0e4cd6..7a45ddce3d795 100644 --- a/spec/features/projects/jobs_spec.rb +++ b/spec/features/projects/jobs_spec.rb @@ -203,7 +203,7 @@ end it 'renders escaped tooltip name' do - page.find('[data-testid="active-job"]').hover + find_by_testid('active-job').hover expect(page).to have_content('<img src=x onerror=alert(document.domain)> - passed') end end @@ -240,7 +240,7 @@ href = new_project_issue_path(project, options) page.within('aside.right-sidebar') do - expect(find('[data-testid="job-new-issue"]')['href']).to include(href) + expect(find_by_testid('job-new-issue')['href']).to include(href) end end end @@ -257,7 +257,7 @@ context 'job is cancelable' do it 'shows cancel button' do - find('[data-testid="cancel-button"]').click + find_by_testid('cancel-button').click expect(page).to have_current_path(job_url, ignore_query: true) end @@ -544,7 +544,7 @@ it 'shows deployment message' do expect(page).to have_content 'This job is deployed to production' - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end context 'when there is a cluster used for the deployment' do @@ -576,7 +576,7 @@ it 'shows a link for the job' do expect(page).to have_link environment.name - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end end @@ -586,7 +586,7 @@ it 'shows a link to latest deployment' do expect(page).to have_link environment.name expect(page).to have_content 'This job is creating a deployment' - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end end end @@ -638,15 +638,15 @@ end it 'renders a link to the most recent deployment' do - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") - expect(find('[data-testid="job-deployment-link"]')['href']).to include(second_deployment.deployable.project.path, second_deployment.deployable_id.to_s) + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-deployment-link')['href']).to include(second_deployment.deployable.project.path, second_deployment.deployable_id.to_s) end context 'when deployment does not have a deployable' do let!(:second_deployment) { create(:deployment, :success, environment: environment, deployable: nil) } it 'has an empty href' do - expect(find('[data-testid="job-deployment-link"]')['href']).to be_empty + expect(find_by_testid('job-deployment-link')['href']).to be_empty end end end @@ -672,7 +672,7 @@ expected_text = 'This job is creating a deployment to staging' expect(page).to have_css('.environment-information', text: expected_text) - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end context 'when it has deployment' do @@ -683,7 +683,7 @@ expect(page).to have_css('.environment-information', text: expected_text) expect(page).to have_css('.environment-information', text: 'latest deployment') - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end end end @@ -698,7 +698,7 @@ '.environment-information', text: expected_text) expect(page).not_to have_css( '.environment-information', text: 'latest deployment') - expect(find('[data-testid="job-environment-link"]')['href']).to match("environments/#{environment.id}") + expect(find_by_testid('job-environment-link')['href']).to match("environments/#{environment.id}") end end end @@ -878,7 +878,7 @@ visit project_job_path(project, job) wait_for_requests - page.within('[data-testid="job-erased-block"]') do + within_testid('job-erased-block') do expect(page).to have_content('Job has been erased') end end @@ -987,7 +987,7 @@ before do job.run! visit project_job_path(project, job) - find('[data-testid="cancel-button"]').click + find_by_testid('cancel-button').click end it 'loads the page and shows all needed controls' do @@ -1004,7 +1004,7 @@ visit project_job_path(project, job) wait_for_requests - find('[data-testid="retry-button"]').click + find_by_testid('retry-button').click end it 'shows the right status and buttons' do @@ -1039,7 +1039,7 @@ visit project_job_path(project, job) wait_for_requests - find('[data-testid="retry-button"]').click + find_by_testid('retry-button').click end it 'shows a modal to warn the user' do @@ -1049,9 +1049,9 @@ end it 'retries the job' do - find('[data-testid="retry-button-modal"]').click + find_by_testid('retry-button-modal').click - within '[data-testid="job-header-content"]' do + within_testid 'job-header-content' do expect(page).to have_content('Pending') end end diff --git a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb index 97b29ee6c9174..8fbf08e87e97a 100644 --- a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb +++ b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb @@ -21,6 +21,6 @@ it 'renders a flash message if attempting to leave by url', :js do visit project_path(project, leave: 1) - expect(find('[data-testid="alert-danger"]')).to have_content 'You do not have permission to leave this project' + expect(find_by_testid('alert-danger')).to have_content 'You do not have permission to leave this project' end end diff --git a/spec/features/projects/members/groups_with_access_list_spec.rb b/spec/features/projects/members/groups_with_access_list_spec.rb index a2a04ada62703..439c2f1a28a1f 100644 --- a/spec/features/projects/members/groups_with_access_list_spec.rb +++ b/spec/features/projects/members/groups_with_access_list_spec.rb @@ -56,7 +56,7 @@ page.within find_group_row(group) do expect(page).to have_field('Expiration date', with: expiration_date) - find('[data-testid="clear-button"]').click + find_by_testid('clear-button').click wait_for_requests diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb index b51259bea23b4..8b720659a398e 100644 --- a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb +++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb @@ -52,7 +52,7 @@ page.within find_member_row(new_member) do expect(page).to have_field('Expiration date', with: five_days_from_now) - find('[data-testid="clear-button"]').click + find_by_testid('clear-button').click wait_for_requests diff --git a/spec/features/projects/members/sorting_spec.rb b/spec/features/projects/members/sorting_spec.rb index 7457fbc698988..f8ef1c0ab469e 100644 --- a/spec/features/projects/members/sorting_spec.rb +++ b/spec/features/projects/members/sorting_spec.rb @@ -147,7 +147,7 @@ def second_member end def expect_sort_by(text, sort_direction) - within('[data-testid="members-sort-dropdown"]') do + within_testid('members-sort-dropdown') do expect(page).to have_css('button[aria-haspopup="listbox"]', text: text) expect(page).to have_button("Sort direction: #{sort_direction == :asc ? 'Ascending' : 'Descending'}") end diff --git a/spec/features/projects/packages_spec.rb b/spec/features/projects/packages_spec.rb index 4e222a67b8776..d69687fb05324 100644 --- a/spec/features/projects/packages_spec.rb +++ b/spec/features/projects/packages_spec.rb @@ -49,8 +49,8 @@ let_it_be(:package) { create(:package, project: project) } it 'allows you to delete a package' do - find('[data-testid="delete-dropdown"]').click - find('[data-testid="action-delete"]').click + find_by_testid('delete-dropdown').click + find_by_testid('action-delete').click click_button('Permanently delete') expect(page).to have_content 'Package deleted successfully' diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb index d481d90792d0c..7f3069d97a73e 100644 --- a/spec/features/projects/pipeline_schedules_spec.rb +++ b/spec/features/projects/pipeline_schedules_spec.rb @@ -25,7 +25,7 @@ end it 'edits the pipeline' do - page.find('[data-testid="edit-pipeline-schedule-btn"]').click + find_by_testid('edit-pipeline-schedule-btn').click expect(page).to have_content(s_('PipelineSchedules|Edit pipeline schedule')) end @@ -108,12 +108,18 @@ describe 'the view' do it 'displays the required information description' do - page.within('[data-testid="pipeline-schedule-table-row"]') do + within_testid('pipeline-schedule-table-row') do expect(page).to have_content('pipeline schedule') - expect(find('[data-testid="next-run-cell"] time')['title']) - .to include(pipeline_schedule.real_next_run.strftime('%B %-d, %Y')) + + within_testid('next-run-cell') do + expect(find('time')['title']).to include(pipeline_schedule.real_next_run.strftime('%B %-d, %Y')) + end + expect(page).to have_link('master') - expect(find("[data-testid='last-pipeline-status'] a")['href']).to include(pipeline.id.to_s) + + within_testid('last-pipeline-status') do + expect(find("a")['href']).to include(pipeline.id.to_s) + end end end @@ -124,7 +130,7 @@ end it 'changes ownership of the pipeline' do - find("[data-testid='take-ownership-pipeline-schedule-btn']").click + find_by_testid('take-ownership-pipeline-schedule-btn').click page.within('#pipeline-take-ownership-modal') do click_button s_('PipelineSchedules|Take ownership') @@ -132,14 +138,14 @@ wait_for_requests end - page.within('[data-testid="pipeline-schedule-table-row"]') do + within_testid('pipeline-schedule-table-row') do expect(page).not_to have_content('No owner') expect(page).to have_link('Sidney Jones') end end it 'deletes the pipeline' do - page.within('[data-testid="pipeline-schedule-table-row"]') do + within_testid('pipeline-schedule-table-row') do click_button s_('PipelineSchedules|Delete pipeline schedule') end @@ -157,9 +163,9 @@ end it 'shows a list of the pipeline schedules with empty ref column' do - target = find('[data-testid="pipeline-schedule-target"]') + target = find_by_testid('pipeline-schedule-target') - page.within('[data-testid="pipeline-schedule-table-row"]') do + within_testid('pipeline-schedule-table-row') do expect(target.text).to eq(s_('PipelineSchedules|None')) end end @@ -173,7 +179,7 @@ end it 'shows a list of the pipeline schedules with empty ref column' do - target = find('[data-testid="pipeline-schedule-target"]') + target = find_by_testid('pipeline-schedule-target') expect(target.text).to eq(s_('PipelineSchedules|None')) end @@ -261,7 +267,7 @@ visit_pipelines_schedules first('[data-testid="edit-pipeline-schedule-btn"]').click - find('[data-testid="remove-ci-variable-row"]').click + find_by_testid('remove-ci-variable-row').click save_pipeline_schedule end -- GitLab