From 00dca09b377265a199296f045cdcec72af39e9b0 Mon Sep 17 00:00:00 2001 From: Jay McCure Date: Tue, 19 Sep 2023 14:21:34 +1000 Subject: [PATCH] Test: migrate new MR qa_selectors to testids --- .../diffs/components/diff_file_header.vue | 2 +- .../merge_requests/components/compare_app.vue | 4 ---- .../components/compare_dropdown.vue | 7 +----- .../merge_requests/creations/new/index.js | 1 - .../vue_shared/components/file_row.vue | 1 - .../projects/blob/_header_content.html.haml | 2 +- .../projects/diffs/_file_header.html.haml | 2 +- .../javascripts/approvals/components/app.vue | 1 - .../approvals/components/empty_rule.vue | 2 +- .../approvals/components/rule_form.vue | 5 +---- .../approvals/components/rule_form_spec.js | 2 +- qa/qa/ee/page/merge_request/new.rb | 22 +++++++++---------- qa/qa/page/blame/show.rb | 6 ++--- qa/qa/page/merge_request/new.rb | 8 +++---- qa/qa/page/merge_request/show.rb | 11 ++++++---- qa/qa/page/project/web_ide/edit.rb | 12 +++++----- 16 files changed, 38 insertions(+), 50 deletions(-) diff --git a/app/assets/javascripts/diffs/components/diff_file_header.vue b/app/assets/javascripts/diffs/components/diff_file_header.vue index d62d0e11bff136..a9e63ad53bbb6e 100644 --- a/app/assets/javascripts/diffs/components/diff_file_header.vue +++ b/app/assets/javascripts/diffs/components/diff_file_header.vue @@ -337,7 +337,7 @@ export default { :title="filePath" class="file-title-name" data-container="body" - data-qa-selector="file_name_content" + data-testid="file-name-content" > {{ filePath }} diff --git a/app/assets/javascripts/merge_requests/components/compare_app.vue b/app/assets/javascripts/merge_requests/components/compare_app.vue index 20c95174989d30..c7c16e91e4cc61 100644 --- a/app/assets/javascripts/merge_requests/components/compare_app.vue +++ b/app/assets/javascripts/merge_requests/components/compare_app.vue @@ -32,9 +32,6 @@ export default { toggleClass: { default: () => ({}), }, - branchQaSelector: { - default: '', - }, }, props: { currentBranch: { @@ -119,7 +116,6 @@ export default { :input-name="inputs.branch.name" :default="currentBranch" :toggle-class="toggleClass.branch" - :qa-selector="branchQaSelector" data-testid="compare-dropdown" @selected="selectBranch" /> diff --git a/app/assets/javascripts/merge_requests/components/compare_dropdown.vue b/app/assets/javascripts/merge_requests/components/compare_dropdown.vue index 6f46b41ee5b27f..2855d70450799f 100644 --- a/app/assets/javascripts/merge_requests/components/compare_dropdown.vue +++ b/app/assets/javascripts/merge_requests/components/compare_dropdown.vue @@ -46,11 +46,6 @@ export default { required: false, default: '', }, - qaSelector: { - type: String, - required: false, - default: null, - }, }, data() { return { @@ -142,7 +137,7 @@ export default { 'gl-align-items-flex-start! gl-justify-content-start! mr-compare-dropdown', toggleClass, ]" - :data-qa-selector="qaSelector" + data-testid="source-branch-dropdown" @shown="fetchData" @search="searchData" @select="selectItem" diff --git a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js index 9db400b3b0a53c..d23a0615bb88fc 100644 --- a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js +++ b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js @@ -43,7 +43,6 @@ if (mrNewCompareNode) { project: 'js-source-project', branch: 'js-source-branch gl-font-monospace', }, - branchQaSelector: 'source_branch_dropdown', }, methods: { async selectedBranch(branchName) { diff --git a/app/assets/javascripts/vue_shared/components/file_row.vue b/app/assets/javascripts/vue_shared/components/file_row.vue index 721f87ff4d6527..cecd1be82e9acb 100644 --- a/app/assets/javascripts/vue_shared/components/file_row.vue +++ b/app/assets/javascripts/vue_shared/components/file_row.vue @@ -141,7 +141,6 @@ export default { ref="textOutput" class="file-row-name" :title="file.name" - data-qa-selector="file_name_content" :data-qa-file-name="file.name" data-testid="file-row-name-container" :class="[fileClasses, { 'str-truncated': !truncateMiddle, 'gl-min-w-0': truncateMiddle }]" diff --git a/app/views/projects/blob/_header_content.html.haml b/app/views/projects/blob/_header_content.html.haml index 9cd2f583fdd57c..8c132a167972a8 100644 --- a/app/views/projects/blob/_header_content.html.haml +++ b/app/views/projects/blob/_header_content.html.haml @@ -3,7 +3,7 @@ .js-table-contents = blob_icon blob.mode, blob.name - %strong.file-title-name.gl-word-break-all{ data: { qa_selector: 'file_name_content' } } + %strong.file-title-name.gl-word-break-all{ data: { testid: 'file-name-content' } } = blob.name = copy_file_path_button(blob.path) diff --git a/app/views/projects/diffs/_file_header.html.haml b/app/views/projects/diffs/_file_header.html.haml index c3a300958f74eb..17e55699615a29 100644 --- a/app/views/projects/diffs/_file_header.html.haml +++ b/app/views/projects/diffs/_file_header.html.haml @@ -23,7 +23,7 @@ %strong.file-title-name.has-tooltip.gl-word-break-all{ data: { title: diff_file.new_path, container: 'body' } } = new_path - else - %strong.file-title-name.has-tooltip.gl-word-break-all{ data: { title: diff_file.file_path, container: 'body', qa_selector: 'file_name_content' } } + %strong.file-title-name.has-tooltip.gl-word-break-all{ data: { title: diff_file.file_path, container: 'body', testid: 'file-name-content' } } = diff_file.file_path - if diff_file.deleted_file? diff --git a/ee/app/assets/javascripts/approvals/components/app.vue b/ee/app/assets/javascripts/approvals/components/app.vue index 02a0759cc691e4..e18715f2bb3c3d 100644 --- a/ee/app/assets/javascripts/approvals/components/app.vue +++ b/ee/app/assets/javascripts/approvals/components/app.vue @@ -91,7 +91,6 @@ export default { :disabled="isLoading" category="secondary" size="small" - data-qa-selector="add_approvers_button" data-testid="add-approval-rule" @click="openCreateModal(null)" > diff --git a/ee/app/assets/javascripts/approvals/components/empty_rule.vue b/ee/app/assets/javascripts/approvals/components/empty_rule.vue index bd32619224cb67..36d4f1249968b9 100644 --- a/ee/app/assets/javascripts/approvals/components/empty_rule.vue +++ b/ee/app/assets/javascripts/approvals/components/empty_rule.vue @@ -64,7 +64,7 @@ export default { v-if="!allowMultiRule && canEdit" category="secondary" variant="confirm" - data-qa-selector="add_approvers_button" + data-testid="add-approval-rule" @click="openCreateModal(null)" > {{ __('Add approval rule') }} diff --git a/ee/app/assets/javascripts/approvals/components/rule_form.vue b/ee/app/assets/javascripts/approvals/components/rule_form.vue index 6d267277e280f8..c5a9f9825f99ba 100644 --- a/ee/app/assets/javascripts/approvals/components/rule_form.vue +++ b/ee/app/assets/javascripts/approvals/components/rule_form.vue @@ -365,8 +365,7 @@ export default { v-model="name" :disabled="isNameDisabled" :state="isValidName" - data-qa-selector="rule_name_field" - data-testid="name" + data-testid="rule-name-field" /> { }; const findForm = () => wrapper.find('form'); - const findNameInput = () => wrapper.findByTestId('name'); + const findNameInput = () => wrapper.findByTestId('rule-name-field'); const findNameValidation = () => wrapper.findByTestId('name-group'); const findApprovalsRequiredInput = () => wrapper.findByTestId('approvals-required'); const findApprovalsRequiredValidation = () => wrapper.findByTestId('approvals-required-group'); diff --git a/qa/qa/ee/page/merge_request/new.rb b/qa/qa/ee/page/merge_request/new.rb index bac94e0cd58a33..3e58712af161e9 100644 --- a/qa/qa/ee/page/merge_request/new.rb +++ b/qa/qa/ee/page/merge_request/new.rb @@ -14,13 +14,13 @@ def self.prepended(base) include ::QA::Page::Component::Dropdown view 'ee/app/assets/javascripts/approvals/components/app.vue' do - element :add_approvers_button + element 'add-approval-rule' end view 'ee/app/assets/javascripts/approvals/components/rule_form.vue' do - element :approvals_required_field - element :member_select_field - element :rule_name_field + element 'approvals-required' + element 'approvers-group' + element 'rule-name-field' end def add_approval_rules(rules) @@ -28,12 +28,12 @@ def add_approval_rules(rules) click_button('Approval rules') rules.each do |rule| - click_element :add_approvers_button + click_element('add-approval-rule') - wait_for_animated_element :rule_name_field + wait_for_animated_element('rule-name-field') - fill_element :rule_name_field, rule[:name] - fill_element :approvals_required_field, rule[:approvals_required] + fill_element('rule-name-field', rule[:name]) + fill_element('approvals-required', rule[:approvals_required]) rule.key?(:users) && rule[:users].each do |user| select_member(user.username) @@ -58,13 +58,13 @@ def click_approvers_modal_ok_button def select_member(name) retry_until do - within_element(:member_select_field) do - click_button 'Search users or groups' + within_element('approvers-group') do + click_button('Search users or groups') search_item(name) # we must send an extra key to trigger the dropdown to filter # as the filtering does not work correctly with Capybara input - send_keys_to_search :space + send_keys_to_search(:space) select_item(name) end end diff --git a/qa/qa/page/blame/show.rb b/qa/qa/page/blame/show.rb index cbe8ef600dc750..42fb217d2df528 100644 --- a/qa/qa/page/blame/show.rb +++ b/qa/qa/page/blame/show.rb @@ -5,7 +5,7 @@ module Page module Blame class Show < Page::Base view 'app/views/projects/blob/_header_content.html.haml' do - element :file_name_content + element 'file-name-content' end view 'app/views/projects/blame/show.html.haml' do @@ -13,11 +13,11 @@ class Show < Page::Base end def has_file?(file_name) - within_element(:file_name_content) { has_text?(file_name) } + within_element('file-name-content') { has_text?(file_name) } end def has_no_file?(file_name) - within_element(:file_name_content) do + within_element('file-name-content') do has_no_text?(file_name) end end diff --git a/qa/qa/page/merge_request/new.rb b/qa/qa/page/merge_request/new.rb index c129cd10f16f30..6a59440fc28087 100644 --- a/qa/qa/page/merge_request/new.rb +++ b/qa/qa/page/merge_request/new.rb @@ -15,7 +15,7 @@ class New < Page::Issuable::New end view 'app/assets/javascripts/merge_requests/components/compare_dropdown.vue' do - element :source_branch_dropdown, ':data-qa-selector="qaSelector"' # rubocop:disable QA/ElementWithPattern + element 'source-branch-dropdown', ':data-testid="testid"' # rubocop:disable QA/ElementWithPattern end view 'app/views/projects/merge_requests/creations/_new_submit.html.haml' do @@ -23,7 +23,7 @@ class New < Page::Issuable::New end view 'app/assets/javascripts/diffs/components/diff_file_header.vue' do - element :file_name_content + element 'file-name-content' end def has_secure_description?(scanner_name) @@ -46,11 +46,11 @@ def click_diffs_tab end def has_file?(file_name) - has_element?(:file_name_content, text: file_name) + has_element?('file-name-content', text: file_name) end def select_source_branch(branch) - click_element(:source_branch_dropdown) + click_element('source-branch-dropdown') search_and_select(branch) end end diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index 2107c09ee904d4..80541bd9283ae8 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -36,12 +36,15 @@ class Show < Page::Base end view 'app/assets/javascripts/diffs/components/diff_file_header.vue' do - element :file_name_content element :file_title_container element :dropdown_button element :edit_in_ide_button end + view 'app/assets/javascripts/vue_shared/components/file_row.vue' do + element 'file-row-name-container' + end + view 'app/assets/javascripts/diffs/components/diff_row.vue' do element :diff_comment_button element :new_diff_line_link @@ -226,17 +229,17 @@ def fast_forward_not_possible? def has_file?(file_name) open_file_tree - return true if has_element?(:file_name_content, file_name: file_name) + return true if has_element?('file-row-name-container', file_name: file_name) # Since the file tree uses virtual scrolling, search for file in case it is outside of viewport search_file_tree(file_name) - has_element?(:file_name_content, file_name: file_name) + has_element?('file-row-name-container', file_name: file_name) end def has_no_file?(file_name) # Since the file tree uses virtual scrolling, search for file to ensure non-existence search_file_tree(file_name) - has_no_element?(:file_name_content, file_name: file_name) + has_no_element?('file-row-name-container', file_name: file_name) end def search_file_tree(file_name) diff --git a/qa/qa/page/project/web_ide/edit.rb b/qa/qa/page/project/web_ide/edit.rb index 19802f846d8683..16eaa7efba9365 100644 --- a/qa/qa/page/project/web_ide/edit.rb +++ b/qa/qa/page/project/web_ide/edit.rb @@ -58,7 +58,7 @@ class Edit < Page::Base end view 'app/assets/javascripts/vue_shared/components/file_row.vue' do - element :file_name_content + element 'file-row-name-container' element :file_row_container end @@ -123,7 +123,7 @@ def wait_until_ide_loads def has_file?(file_name) within_element(:file_list_container) do - has_element?(:file_name_content, file_name: file_name) + has_element?('file-row-name-container', file_name: file_name) end end @@ -289,7 +289,7 @@ def add_directory(directory_name) end def rename_file(file_name, new_file_name) - click_element(:file_name_content, file_name: file_name) + click_element('file-row-name-container', file_name: file_name) click_element(:dropdown_button) click_element(:rename_move_button, Page::Component::WebIDE::Modal::CreateNewFile) fill_element(:file_name_field, new_file_name) @@ -314,7 +314,7 @@ def upload_file(file_path) end def delete_file(file_name) - click_element(:file_name_content, file_name: file_name) + click_element('file-row-name-container', file_name: file_name) click_element(:dropdown_button) click_element(:delete_button) end @@ -326,9 +326,9 @@ def switch_to_commit_tab def select_file(file_name) # wait for the list of files to load wait_until(reload: true) do - has_element?(:file_name_content, file_name: file_name) + has_element?('file-row-name-container', file_name: file_name) end - click_element(:file_name_content, file_name: file_name) + click_element('file-row-name-container', file_name: file_name) end def link_line(line_number) -- GitLab