diff --git a/app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue b/app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue index 662451c5eb43b538b5fc6b543342f42f31404ae2..62924dcd0a822d4613d78934b701a50807fc4b64 100644 --- a/app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue +++ b/app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue @@ -281,7 +281,7 @@ export default { :shape="$options.AVATAR_SHAPE_OPTION_RECT" /> <div> - <div data-testid="project-name" data-qa-selector="project_name">{{ item.name }}</div> + <div data-testid="project-name">{{ item.name }}</div> <div class="gl-text-gray-500" data-testid="project-full-path"> {{ item.fullPath }} </div> diff --git a/app/assets/javascripts/authentication/password/components/password_input.vue b/app/assets/javascripts/authentication/password/components/password_input.vue index 6e3af96cf33839e53b72316140338a17d6407660..7f2a2beaa47939a7a2e58c4ff1510853a2da854d 100644 --- a/app/assets/javascripts/authentication/password/components/password_input.vue +++ b/app/assets/javascripts/authentication/password/components/password_input.vue @@ -27,11 +27,6 @@ export default { required: false, default: null, }, - qaSelector: { - type: String, - required: false, - default: null, - }, testid: { type: String, required: false, @@ -80,7 +75,6 @@ export default { :autocomplete="autocomplete" :name="name" :minlength="minimumPasswordLength" - :data-qa-selector="qaSelector" :data-testid="testid" :title="title" :type="type" diff --git a/app/assets/javascripts/authentication/password/index.js b/app/assets/javascripts/authentication/password/index.js index a4f2d038cf74abb10c90959b0a743d0600454ff9..903512a7b533cbcd1417993fa00bd276e651e1a7 100644 --- a/app/assets/javascripts/authentication/password/index.js +++ b/app/assets/javascripts/authentication/password/index.js @@ -9,7 +9,7 @@ export const initPasswordInput = () => { } const { form } = el; - const { title, id, minimumPasswordLength, qaSelector, testid, autocomplete, name } = el.dataset; + const { title, id, minimumPasswordLength, testid, autocomplete, name } = el.dataset; // eslint-disable-next-line no-new new Vue({ @@ -21,7 +21,6 @@ export const initPasswordInput = () => { title, id, minimumPasswordLength, - qaSelector, testid, autocomplete, name, diff --git a/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue b/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue index 907b68e6ffc242aa8f023e29d59ef6b1beda771b..e97846bae2906201f90fa18fbf8f823e7c656ab0 100644 --- a/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue +++ b/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue @@ -119,7 +119,6 @@ export default { type="password" name="current_password" :state="currentPasswordState" - data-qa-selector="current_password_field" /> </gl-form-group> diff --git a/app/assets/javascripts/blob/filepath_form/components/template_selector.vue b/app/assets/javascripts/blob/filepath_form/components/template_selector.vue index 379d5e3819734f0a7fa385e48c8bf2f7c5ab9a1f..e9f54639fdd459a8f64429ec2f665d11b39b75af 100644 --- a/app/assets/javascripts/blob/filepath_form/components/template_selector.vue +++ b/app/assets/javascripts/blob/filepath_form/components/template_selector.vue @@ -149,7 +149,6 @@ export default { block class="gl-font-regular" data-testid="template-selector" - data-qa-selector="template_selector" :toggle-text="dropdownToggleText" :search-placeholder="$options.i18n.searchPlaceholder" :items="dropdownItems" diff --git a/app/helpers/ssh_keys_helper.rb b/app/helpers/ssh_keys_helper.rb index 6100093b7c24aba4c89aa4edb0c4b4252e153dc6..974a6869528636130eaa920a97cb0f5e69a4b144 100644 --- a/app/helpers/ssh_keys_helper.rb +++ b/app/helpers/ssh_keys_helper.rb @@ -7,11 +7,11 @@ def ssh_key_delete_modal_data(key, path) { path: path, method: 'delete', - qa_selector: 'delete_ssh_key_button', + testid: 'delete-ssh-key-button', title: title, aria_label: title, modal_attributes: { - 'data-qa-selector': 'ssh_key_delete_modal', + 'data-testid': 'ssh-key-delete-modal', title: _('Are you sure you want to delete this SSH key?'), message: _('This action cannot be undone, and will permanently delete the %{key} SSH key') % { key: key.title }, okVariant: 'danger', diff --git a/app/views/profiles/keys/_form.html.haml b/app/views/profiles/keys/_form.html.haml index b1df63a72ab7a0ed9a22695e2d2c7673463afe20..edb52f31eccee749bd41a4cb5f7718f65287089e 100644 --- a/app/views/profiles/keys/_form.html.haml +++ b/app/views/profiles/keys/_form.html.haml @@ -5,12 +5,12 @@ .form-group = f.label :key, s_('Profiles|Key'), class: 'label-bold' - = f.text_area :key, class: "form-control gl-form-input js-add-ssh-key-validation-input", rows: 8, required: true, data: { supported_algorithms: Gitlab::SSHPublicKey.supported_algorithms, qa_selector: 'key_public_key_field' } + = f.text_area :key, class: "form-control gl-form-input js-add-ssh-key-validation-input", rows: 8, required: true, data: { supported_algorithms: Gitlab::SSHPublicKey.supported_algorithms, testid: 'key-public-key-field' } %p.form-text.text-muted= s_('Profiles|Begins with %{ssh_key_algorithms}.') % { ssh_key_algorithms: ssh_key_allowed_algorithms } .form-row .col.form-group = f.label :title, s_('Profiles|Title'), class: 'label-bold' - = f.text_field :title, class: "form-control gl-form-input input-lg", required: true, placeholder: s_('Profiles|Example: MacBook key'), data: { qa_selector: 'key_title_field' } + = f.text_field :title, class: "form-control gl-form-input input-lg", required: true, placeholder: s_('Profiles|Example: MacBook key'), data: { testid: 'key-title-field' } %p.form-text.text-muted= s_('Profiles|Key titles are publicly visible.') .form-row .col.form-group @@ -32,6 +32,6 @@ button_options: { class: 'js-add-ssh-key-validation-confirm-submit' }) do = _("Yes, add it") - = f.submit s_('Profiles|Add key'), class: "js-add-ssh-key-validation-original-submit", pajamas_button: true, data: { qa_selector: 'add_key_button' } + = f.submit s_('Profiles|Add key'), class: "js-add-ssh-key-validation-original-submit", pajamas_button: true, data: { testid: 'add-key-button' } = render Pajamas::ButtonComponent.new(button_options: { type: 'reset', class: 'js-add-ssh-key-validation-cancel gl-ml-2 js-toggle-button' }) do = _('Cancel') diff --git a/app/views/profiles/keys/_key_table.html.haml b/app/views/profiles/keys/_key_table.html.haml index cfe507ad65d3e8990076482407b4139db80ee95d..efd59503041f61cd14f6fbef48b80b9cf102b94e 100644 --- a/app/views/profiles/keys/_key_table.html.haml +++ b/app/views/profiles/keys/_key_table.html.haml @@ -3,7 +3,7 @@ - if @keys.any? .table-holder - %table.table.b-table.gl-table.b-table-stacked-md.gl-mt-n1.gl-mb-n2.ssh-keys-list{ data: { qa_selector: 'ssh_keys_list' } } + %table.table.b-table.gl-table.b-table-stacked-md.gl-mt-n1.gl-mb-n2.ssh-keys-list{ data: { testid: 'ssh-keys-list' } } %thead.d-none.d-md-table-header-group %tr %th= _('Title') diff --git a/qa/qa/page/file/form.rb b/qa/qa/page/file/form.rb index 30cd4f11bb4249b135d8fc1e47c497c52f09163b..61216f7b28dd9fc9b91fb2ab59d98db1fe34f65c 100644 --- a/qa/qa/page/file/form.rb +++ b/qa/qa/page/file/form.rb @@ -15,7 +15,7 @@ class Form < Page::Base end view 'app/assets/javascripts/blob/filepath_form/components/template_selector.vue' do - element :template_selector + element 'template-selector' end def add_name(name) @@ -35,7 +35,7 @@ def add_custom_name(template_name) def select_template(template_type, template) case template_type when '.gitignore', '.gitlab-ci.yml', 'Dockerfile', 'LICENSE' - click_element :template_selector + click_element 'template-selector' else raise %(Unsupported template_type "#{template_type}". Please confirm that it is a valid option.) end diff --git a/qa/qa/page/profile/ssh_keys.rb b/qa/qa/page/profile/ssh_keys.rb index c9ec056261adc85fd4e73327d161b6de2b0a48a2..b26b86e37130a73cf4aacbc20bf6a715cf47638f 100644 --- a/qa/qa/page/profile/ssh_keys.rb +++ b/qa/qa/page/profile/ssh_keys.rb @@ -5,9 +5,9 @@ module Page module Profile class SSHKeys < Page::Base view 'app/views/profiles/keys/_form.html.haml' do - element :key_title_field - element :key_public_key_field - element :add_key_button + element 'key-title-field' + element 'key-public-key-field' + element 'add-key-button' end view 'app/assets/javascripts/access_tokens/components/expires_at_field.vue' do @@ -15,25 +15,25 @@ class SSHKeys < Page::Base end view 'app/helpers/ssh_keys_helper.rb' do - element :delete_ssh_key_button - element :ssh_key_delete_modal + element 'delete-ssh-key-button' + element 'ssh-key-delete-modal' end view 'app/views/profiles/keys/_key_table.html.haml' do - element :ssh_keys_list + element 'ssh-keys-list' end def add_key(public_key, title) click_button('Add new key') - fill_element(:key_public_key_field, public_key) - fill_element(:key_title_field, title) + fill_element('key-public-key-field', public_key) + fill_element('key-title-field', title) # Expire in 2 days just in case the key is created just before midnight fill_expiry_date(Date.today + 2) # Close the datepicker find_element('expiry-date-field').find('input').send_keys(:enter) - click_element(:add_key_button) + click_element('add-key-button') end def fill_expiry_date(date) @@ -50,19 +50,19 @@ def fill_expiry_date(date) def remove_key(title) click_link(title) - click_element(:delete_ssh_key_button) + click_element('delete-ssh-key-button') # Retrying due to https://gitlab.com/gitlab-org/gitlab/-/issues/255287 retry_on_exception do - wait_for_animated_element(:ssh_key_delete_modal) - within_element(:ssh_key_delete_modal) do + wait_for_animated_element('ssh-key-delete-modal') + within_element('ssh-key-delete-modal') do click_button('Delete') end end end def keys_list - find_element(:ssh_keys_list).text + find_element('ssh-keys-list').text end end end diff --git a/spec/frontend/authentication/password/components/password_input_spec.js b/spec/frontend/authentication/password/components/password_input_spec.js index 5b2a9da993b96fc7374c1181475bb5d3d066b0e6..62438e824cf3ceeba31971e50642508e1e0b1af2 100644 --- a/spec/frontend/authentication/password/components/password_input_spec.js +++ b/spec/frontend/authentication/password/components/password_input_spec.js @@ -9,7 +9,6 @@ describe('PasswordInput', () => { title: 'This field is required', id: 'new_user_password', minimumPasswordLength: '8', - qaSelector: 'new_user_password_field', testid: 'new_user_password', autocomplete: 'new-password', name: 'new_user',