summaryrefslogtreecommitdiff
path: root/qa/qa/page
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 15:44:42 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 15:44:42 +0000
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /qa/qa/page
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
downloadgitlab-ce-4555e1b21c365ed8303ffb7a3325d773c9b8bf31.tar.gz
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'qa/qa/page')
-rw-r--r--qa/qa/page/admin/menu.rb2
-rw-r--r--qa/qa/page/admin/overview/groups/edit.rb2
-rw-r--r--qa/qa/page/admin/overview/users/index.rb2
-rw-r--r--qa/qa/page/alert/free_trial.rb12
-rw-r--r--qa/qa/page/base.rb41
-rw-r--r--qa/qa/page/component/access_tokens.rb4
-rw-r--r--qa/qa/page/component/issue_board/show.rb2
-rw-r--r--qa/qa/page/component/visibility_setting.rb23
-rw-r--r--qa/qa/page/dashboard/projects.rb2
-rw-r--r--qa/qa/page/dashboard/snippet/index.rb22
-rw-r--r--qa/qa/page/file/shared/commit_message.rb4
-rw-r--r--qa/qa/page/file/show.rb2
-rw-r--r--qa/qa/page/group/bulk_import.rb47
-rw-r--r--qa/qa/page/group/menu.rb12
-rw-r--r--qa/qa/page/group/new.rb39
-rw-r--r--qa/qa/page/group/settings/billing.rb13
-rw-r--r--qa/qa/page/group/settings/general.rb29
-rw-r--r--qa/qa/page/group/settings/package_registries.rb2
-rw-r--r--qa/qa/page/main/login.rb21
-rw-r--r--qa/qa/page/main/menu.rb31
-rw-r--r--qa/qa/page/merge_request/new.rb2
-rw-r--r--qa/qa/page/merge_request/show.rb177
-rw-r--r--qa/qa/page/milestone/show.rb2
-rw-r--r--qa/qa/page/profile/menu.rb2
-rw-r--r--qa/qa/page/profile/password.rb14
-rw-r--r--qa/qa/page/project/artifact/show.rb19
-rw-r--r--qa/qa/page/project/commit/show.rb7
-rw-r--r--qa/qa/page/project/issue/index.rb2
-rw-r--r--qa/qa/page/project/issue/show.rb2
-rw-r--r--qa/qa/page/project/job/show.rb2
-rw-r--r--qa/qa/page/project/menu.rb24
-rw-r--r--qa/qa/page/project/new.rb23
-rw-r--r--qa/qa/page/project/new_experiment.rb26
-rw-r--r--qa/qa/page/project/operations/metrics/show.rb2
-rw-r--r--qa/qa/page/project/packages/index.rb2
-rw-r--r--qa/qa/page/project/pipeline/index.rb2
-rw-r--r--qa/qa/page/project/pipeline/show.rb2
-rw-r--r--qa/qa/page/project/settings/ci_cd.rb2
-rw-r--r--qa/qa/page/project/settings/deploy_keys.rb39
-rw-r--r--qa/qa/page/project/settings/deploy_tokens.rb34
-rw-r--r--qa/qa/page/project/settings/integrations.rb2
-rw-r--r--qa/qa/page/project/settings/main.rb2
-rw-r--r--qa/qa/page/project/settings/merge_request.rb6
-rw-r--r--qa/qa/page/project/settings/mirroring_repositories.rb2
-rw-r--r--qa/qa/page/project/settings/protected_branches.rb2
-rw-r--r--qa/qa/page/project/settings/protected_tags.rb2
-rw-r--r--qa/qa/page/project/settings/repository.rb2
-rw-r--r--qa/qa/page/project/show.rb4
-rw-r--r--qa/qa/page/project/snippet/index.rb2
-rw-r--r--qa/qa/page/project/sub_menus/ci_cd.rb6
-rw-r--r--qa/qa/page/project/sub_menus/common.rb14
-rw-r--r--qa/qa/page/project/sub_menus/issues.rb21
-rw-r--r--qa/qa/page/project/sub_menus/operations.rb17
-rw-r--r--qa/qa/page/project/sub_menus/packages.rb20
-rw-r--r--qa/qa/page/project/sub_menus/project.rb4
-rw-r--r--qa/qa/page/project/sub_menus/repository.rb8
-rw-r--r--qa/qa/page/project/sub_menus/settings.rb26
-rw-r--r--qa/qa/page/project/web_ide/edit.rb36
-rw-r--r--qa/qa/page/project/wiki/show.rb2
-rw-r--r--qa/qa/page/registration/welcome.rb2
-rw-r--r--qa/qa/page/trials/new.rb23
-rw-r--r--qa/qa/page/trials/select.rb18
-rw-r--r--qa/qa/page/user/show.rb40
63 files changed, 597 insertions, 361 deletions
diff --git a/qa/qa/page/admin/menu.rb b/qa/qa/page/admin/menu.rb
index 37275465221..e55e156fb8a 100644
--- a/qa/qa/page/admin/menu.rb
+++ b/qa/qa/page/admin/menu.rb
@@ -107,4 +107,4 @@ module QA
end
end
-QA::Page::Admin::Menu.prepend_if_ee('QA::EE::Page::Admin::Menu')
+QA::Page::Admin::Menu.prepend_mod_with('Page::Admin::Menu', namespace: QA)
diff --git a/qa/qa/page/admin/overview/groups/edit.rb b/qa/qa/page/admin/overview/groups/edit.rb
index c96e953d05b..8e4650a1232 100644
--- a/qa/qa/page/admin/overview/groups/edit.rb
+++ b/qa/qa/page/admin/overview/groups/edit.rb
@@ -20,4 +20,4 @@ module QA
end
end
-QA::Page::Admin::Overview::Groups::Edit.prepend_if_ee('QA::EE::Page::Admin::Overview::Groups::Edit')
+QA::Page::Admin::Overview::Groups::Edit.prepend_mod_with('Page::Admin::Overview::Groups::Edit', namespace: QA)
diff --git a/qa/qa/page/admin/overview/users/index.rb b/qa/qa/page/admin/overview/users/index.rb
index 1885644d226..f8c79b4f72c 100644
--- a/qa/qa/page/admin/overview/users/index.rb
+++ b/qa/qa/page/admin/overview/users/index.rb
@@ -29,7 +29,7 @@ module QA
def click_user(username)
within_element(:user_row_content, text: username) do
- click_element(:username_link)
+ click_link(username)
end
end
end
diff --git a/qa/qa/page/alert/free_trial.rb b/qa/qa/page/alert/free_trial.rb
new file mode 100644
index 00000000000..4a48d4ca277
--- /dev/null
+++ b/qa/qa/page/alert/free_trial.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Alert
+ class FreeTrial < Chemlab::Page
+ # TODO: Supplant with data-qa-selectors
+ h4 :trial_activated_message, class: 'gl-banner-title'
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb
index 289094268b6..66040bb9849 100644
--- a/qa/qa/page/base.rb
+++ b/qa/qa/page/base.rb
@@ -132,16 +132,16 @@ module QA
all(element_selector_css(name), **kwargs)
end
- def check_element(name, click_by_js = false)
- if find_element(name, visible: false).checked?
+ def check_element(name, click_by_js = false, visibility = false)
+ if find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug("#{name} is already checked")
return
end
retry_until(sleep_interval: 1) do
- click_checkbox_or_radio(name, click_by_js)
- checked = find_element(name, visible: false).checked?
+ click_checkbox_or_radio(name, click_by_js, visibility)
+ checked = find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug(checked ? "#{name} was checked" : "#{name} was not checked")
@@ -149,16 +149,16 @@ module QA
end
end
- def uncheck_element(name, click_by_js = false)
- unless find_element(name, visible: false).checked?
+ def uncheck_element(name, click_by_js = false, visibility = false)
+ unless find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug("#{name} is already unchecked")
return
end
retry_until(sleep_interval: 1) do
- click_checkbox_or_radio(name, click_by_js)
- unchecked = !find_element(name, visible: false).checked?
+ click_checkbox_or_radio(name, click_by_js, visibility)
+ unchecked = !find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug(unchecked ? "#{name} was unchecked" : "#{name} was not unchecked")
@@ -167,21 +167,22 @@ module QA
end
# Method for selecting radios
- def choose_element(name, click_by_js = false)
- if find_element(name, visible: false).checked?
+ def choose_element(name, click_by_js = false, visibility = false)
+ if find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug("#{name} is already selected")
return
end
retry_until(sleep_interval: 1) do
- click_checkbox_or_radio(name, click_by_js)
- selected = find_element(name, visible: false).checked?
+ click_checkbox_or_radio(name, click_by_js, visibility)
+ selected = find_element(name, visible: visibility).checked?
QA::Runtime::Logger.debug(selected ? "#{name} was selected" : "#{name} was not selected")
selected
end
+ wait_for_requests
end
# Use this to simulate moving the pointer to an element's coordinate
@@ -226,10 +227,12 @@ module QA
wait = kwargs.delete(:wait) || Capybara.default_max_wait_time
text = kwargs.delete(:text)
klass = kwargs.delete(:class)
+ visible = kwargs.delete(:visible)
+ visible = visible.nil? && true
try_find_element = ->(wait) do
if disabled.nil?
- has_css?(element_selector_css(name, kwargs), text: text, wait: wait, class: klass)
+ has_css?(element_selector_css(name, kwargs), text: text, wait: wait, class: klass, visible: visible)
else
find_element(name, original_kwargs).disabled? == disabled
end
@@ -337,8 +340,10 @@ module QA
end
end
- def scroll_to_element(name, *args)
- scroll_to(element_selector_css(name), *args)
+ def scroll_to_element(name, *kwargs)
+ text = kwargs.delete(:text)
+
+ scroll_to(element_selector_css(name, kwargs), text: text)
end
def element_selector_css(name, *attributes)
@@ -399,7 +404,7 @@ module QA
end
def visible?
- raise NoRequiredElementsError.new(self.class) if self.class.required_elements.empty?
+ raise NoRequiredElementsError, self.class if self.class.required_elements.empty?
self.class.required_elements.each do |required_element|
return false if has_no_element? required_element
@@ -424,8 +429,8 @@ module QA
private
- def click_checkbox_or_radio(name, click_by_js)
- box = find_element(name, visible: false)
+ def click_checkbox_or_radio(name, click_by_js, visibility)
+ box = find_element(name, visible: visibility)
# Some checkboxes and radio buttons are hidden by their labels and cannot be clicked directly
click_by_js ? page.execute_script("arguments[0].click();", box) : box.click
end
diff --git a/qa/qa/page/component/access_tokens.rb b/qa/qa/page/component/access_tokens.rb
index d8e3d12b38b..3c8a6cf6a1d 100644
--- a/qa/qa/page/component/access_tokens.rb
+++ b/qa/qa/page/component/access_tokens.rb
@@ -19,7 +19,7 @@ module QA
end
base.view 'app/views/shared/tokens/_scopes_form.html.haml' do
- element :api_radio, 'qa-#{scope}-radio' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck
+ element :api_checkbox, '#{scope}_checkbox' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck
end
base.view 'app/views/shared/access_tokens/_created_container.html.haml' do
@@ -36,7 +36,7 @@ module QA
end
def check_api
- check_element(:api_radio)
+ check_element(:api_checkbox)
end
def click_create_token_button
diff --git a/qa/qa/page/component/issue_board/show.rb b/qa/qa/page/component/issue_board/show.rb
index dbf4dc30116..e0c8f73e1b0 100644
--- a/qa/qa/page/component/issue_board/show.rb
+++ b/qa/qa/page/component/issue_board/show.rb
@@ -137,4 +137,4 @@ module QA
end
end
-QA::Page::Component::IssueBoard::Show.prepend_if_ee('QA::EE::Page::Component::IssueBoard::Show')
+QA::Page::Component::IssueBoard::Show.prepend_mod_with('Page::Component::IssueBoard::Show', namespace: QA)
diff --git a/qa/qa/page/component/visibility_setting.rb b/qa/qa/page/component/visibility_setting.rb
new file mode 100644
index 00000000000..4370cfb4564
--- /dev/null
+++ b/qa/qa/page/component/visibility_setting.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ module VisibilitySetting
+ extend QA::Page::PageConcern
+
+ def self.included(base)
+ super
+
+ base.view 'app/views/shared/_visibility_radios.html.haml' do
+ element :visibility_radio, 'qa_selector: "#{visibility_level_label(level).downcase}_radio"' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck
+ end
+ end
+
+ def set_visibility(visibility)
+ choose_element("#{visibility.downcase}_radio", false, true)
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/dashboard/projects.rb b/qa/qa/page/dashboard/projects.rb
index b9e2383a3eb..8be11550233 100644
--- a/qa/qa/page/dashboard/projects.rb
+++ b/qa/qa/page/dashboard/projects.rb
@@ -45,4 +45,4 @@ module QA
end
end
-QA::Page::Dashboard::Projects.prepend_if_ee('QA::EE::Page::Dashboard::Projects')
+QA::Page::Dashboard::Projects.prepend_mod_with('Page::Dashboard::Projects', namespace: QA)
diff --git a/qa/qa/page/dashboard/snippet/index.rb b/qa/qa/page/dashboard/snippet/index.rb
index 8c4abfdf606..63589c376f6 100644
--- a/qa/qa/page/dashboard/snippet/index.rb
+++ b/qa/qa/page/dashboard/snippet/index.rb
@@ -10,10 +10,32 @@ module QA
element :global_new_snippet_link
end
+ view 'app/views/shared/snippets/_snippet.html.haml' do
+ element :snippet_link
+ element :snippet_visibility_content
+ element :snippet_file_count_content
+ end
+
def go_to_new_snippet_page
click_element :new_menu_toggle
click_element :global_new_snippet_link
end
+
+ def has_snippet_title?(snippet_title)
+ has_element?(:snippet_link, snippet_title: snippet_title)
+ end
+
+ def has_visibility_level?(snippet_title, visibility)
+ within_element(:snippet_link, snippet_title: snippet_title) do
+ has_element?(:snippet_visibility_content, snippet_visibility: visibility)
+ end
+ end
+
+ def has_number_of_files?(snippet_title, number)
+ within_element(:snippet_link, snippet_title: snippet_title) do
+ has_element?(:snippet_file_count_content, snippet_files: number)
+ end
+ end
end
end
end
diff --git a/qa/qa/page/file/shared/commit_message.rb b/qa/qa/page/file/shared/commit_message.rb
index 906f5f3581a..4c25e8a480b 100644
--- a/qa/qa/page/file/shared/commit_message.rb
+++ b/qa/qa/page/file/shared/commit_message.rb
@@ -11,7 +11,7 @@ module QA
super
base.view 'app/views/shared/_commit_message_container.html.haml' do
- element :commit_message, "text_area_tag 'commit_message'" # rubocop:disable QA/ElementWithPattern
+ element :commit_message_field
end
base.view 'app/views/projects/commits/_commit.html.haml' do
@@ -20,7 +20,7 @@ module QA
end
def add_commit_message(message)
- fill_in 'commit_message', with: message
+ fill_element(:commit_message_field, message)
end
def has_commit_message?(text)
diff --git a/qa/qa/page/file/show.rb b/qa/qa/page/file/show.rb
index 28b6b3be154..cefbbbcdba0 100644
--- a/qa/qa/page/file/show.rb
+++ b/qa/qa/page/file/show.rb
@@ -62,4 +62,4 @@ module QA
end
end
-QA::Page::File::Show.prepend_if_ee('QA::EE::Page::File::Show')
+QA::Page::File::Show.prepend_mod_with('Page::File::Show', namespace: QA)
diff --git a/qa/qa/page/group/bulk_import.rb b/qa/qa/page/group/bulk_import.rb
new file mode 100644
index 00000000000..11741bdf4cb
--- /dev/null
+++ b/qa/qa/page/group/bulk_import.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Group
+ class BulkImport < Page::Base
+ view "app/assets/javascripts/import_entities/import_groups/components/import_table.vue" do
+ element :import_table
+ end
+
+ view "app/assets/javascripts/import_entities/import_groups/components/import_table_row.vue" do
+ element :import_item
+ element :target_namespace_selector_dropdown
+ element :target_group_dropdown_item
+ element :import_status_indicator
+ element :import_group_button
+ end
+
+ # Import source group in to target group
+ #
+ # @param [String] source_group_name
+ # @param [String] target_group_name
+ # @return [void]
+ def import_group(source_group_name, target_group_name)
+ finished_loading?
+
+ within_element(:import_item, source_group: source_group_name) do
+ click_element(:target_namespace_selector_dropdown)
+ click_element(:target_group_dropdown_item, group_name: target_group_name)
+ click_element(:import_group_button)
+ end
+ end
+
+ # Check if import page has a successfully imported group
+ #
+ # @param [String] source_group_name
+ # @param [Integer] wait
+ # @return [Boolean]
+ def has_imported_group?(source_group_name, wait: QA::Support::WaitForRequests::DEFAULT_MAX_WAIT_TIME)
+ within_element(:import_item, source_group: source_group_name) do
+ has_element?(:import_status_indicator, text: "Complete", wait: wait)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/group/menu.rb b/qa/qa/page/group/menu.rb
index 10c0ee1f0a9..66e8b5d5863 100644
--- a/qa/qa/page/group/menu.rb
+++ b/qa/qa/page/group/menu.rb
@@ -11,7 +11,7 @@ module QA
element :group_issues_item
element :group_members_item
element :group_milestones_link
- element :group_settings_item
+ element :group_settings
end
view 'app/views/groups/sidebar/_packages_settings.html.haml' do
@@ -31,7 +31,7 @@ module QA
def click_settings
within_sidebar do
- click_element(:group_settings_item)
+ click_element(:group_settings)
end
end
@@ -44,7 +44,7 @@ module QA
end
def click_group_general_settings_item
- hover_element(:group_settings_item) do
+ hover_element(:group_settings) do
within_submenu(:group_sidebar_submenu) do
click_element(:general_settings_link)
end
@@ -60,8 +60,8 @@ module QA
end
def go_to_package_settings
- scroll_to_element(:group_settings_item)
- hover_element(:group_settings_item) do
+ scroll_to_element(:group_settings)
+ hover_element(:group_settings) do
within_submenu(:group_sidebar_submenu) do
click_element(:group_package_settings_link)
end
@@ -83,4 +83,4 @@ module QA
end
end
-QA::Page::Group::Menu.prepend_if_ee('QA::EE::Page::Group::Menu')
+QA::Page::Group::Menu.prepend_mod_with('Page::Group::Menu', namespace: QA)
diff --git a/qa/qa/page/group/new.rb b/qa/qa/page/group/new.rb
index 5f43cfb49c0..5a908266597 100644
--- a/qa/qa/page/group/new.rb
+++ b/qa/qa/page/group/new.rb
@@ -4,28 +4,51 @@ module QA
module Page
module Group
class New < Page::Base
+ include Page::Component::VisibilitySetting
+
view 'app/views/shared/_group_form.html.haml' do
- element :group_path_field, 'text_field :path' # rubocop:disable QA/ElementWithPattern
- element :group_name_field, 'text_field :name' # rubocop:disable QA/ElementWithPattern
+ element :group_path_field
+ element :group_name_field
end
view 'app/views/groups/_new_group_fields.html.haml' do
element :create_group_button, "submit _('Create group')" # rubocop:disable QA/ElementWithPattern
- element :visibility_radios, 'visibility_level:' # rubocop:disable QA/ElementWithPattern
end
- def set_path(path)
- fill_in 'group_path', with: path
- fill_in 'group_name', with: path
+ view 'app/views/groups/_import_group_from_another_instance_panel.html.haml' do
+ element :import_gitlab_url
+ element :import_gitlab_token
+ element :connect_instance_button
end
- def set_visibility(visibility)
- choose visibility
+ def set_path(path)
+ fill_element(:group_path_field, path)
+ fill_element(:group_name_field, path)
end
def create
click_button 'Create group'
end
+
+ def set_gitlab_url(url)
+ fill_element(:import_gitlab_url, url)
+ end
+
+ def set_gitlab_token(token)
+ fill_element(:import_gitlab_token, token)
+ end
+
+ # Connect gitlab instance
+ #
+ # @param [String] gitlab_url
+ # @param [String] gitlab_token
+ # @return [void]
+ def connect_gitlab_instance(gitlab_url, gitlab_token)
+ set_gitlab_url(gitlab_url)
+ set_gitlab_token(gitlab_token)
+
+ click_element(:connect_instance_button)
+ end
end
end
end
diff --git a/qa/qa/page/group/settings/billing.rb b/qa/qa/page/group/settings/billing.rb
new file mode 100644
index 00000000000..a83af47fc35
--- /dev/null
+++ b/qa/qa/page/group/settings/billing.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Group
+ module Settings
+ class Billing < Chemlab::Page
+ link :start_your_free_trial
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/group/settings/general.rb b/qa/qa/page/group/settings/general.rb
index 1ab849d10b1..4977e5c7105 100644
--- a/qa/qa/page/group/settings/general.rb
+++ b/qa/qa/page/group/settings/general.rb
@@ -6,6 +6,7 @@ module QA
module Settings
class General < QA::Page::Base
include ::QA::Page::Settings::Common
+ include Page::Component::VisibilitySetting
view 'app/views/groups/edit.html.haml' do
element :permission_lfs_2fa_content
@@ -21,10 +22,6 @@ module QA
element :save_name_visibility_settings_button
end
- view 'app/views/shared/_visibility_radios.html.haml' do
- element :internal_radio, 'qa_selector: "#{visibility_level_label(level).downcase}_radio"' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck
- end
-
view 'app/views/groups/settings/_lfs.html.haml' do
element :lfs_checkbox
end
@@ -56,47 +53,43 @@ module QA
find_element(:group_name_field).set name
end
- def set_group_visibility(visibility)
- find_element("#{visibility.downcase}_radio").click
- end
-
def click_save_name_visibility_settings_button
click_element(:save_name_visibility_settings_button)
end
def set_lfs_enabled
expand_content(:permission_lfs_2fa_content)
- check_element(:lfs_checkbox)
+ check_element(:lfs_checkbox, true)
click_element(:save_permissions_changes_button)
end
def set_lfs_disabled
expand_content(:permission_lfs_2fa_content)
- uncheck_element(:lfs_checkbox)
+ uncheck_element(:lfs_checkbox, true)
click_element(:save_permissions_changes_button)
end
def set_request_access_enabled
expand_content(:permission_lfs_2fa_content)
- check_element(:request_access_checkbox)
+ check_element(:request_access_checkbox, true)
click_element(:save_permissions_changes_button)
end
def set_request_access_disabled
expand_content(:permission_lfs_2fa_content)
- uncheck_element(:request_access_checkbox)
+ uncheck_element(:request_access_checkbox, true)
click_element(:save_permissions_changes_button)
end
def set_require_2fa_enabled
expand_content(:permission_lfs_2fa_content)
- check_element(:require_2fa_checkbox)
+ check_element(:require_2fa_checkbox, true)
click_element(:save_permissions_changes_button)
end
def set_require_2fa_disabled
expand_content(:permission_lfs_2fa_content)
- uncheck_element(:require_2fa_checkbox)
+ uncheck_element(:require_2fa_checkbox, true)
click_element(:save_permissions_changes_button)
end
@@ -109,10 +102,10 @@ module QA
def toggle_request_access
expand_content(:permission_lfs_2fa_content)
- if find_element(:request_access_checkbox).checked?
- uncheck_element(:request_access_checkbox)
+ if find_element(:request_access_checkbox, visible: false).checked?
+ uncheck_element(:request_access_checkbox, true)
else
- check_element(:request_access_checkbox)
+ check_element(:request_access_checkbox, true)
end
click_element(:save_permissions_changes_button)
@@ -136,4 +129,4 @@ module QA
end
end
-QA::Page::Group::Settings::General.prepend_if_ee('QA::EE::Page::Group::Settings::General')
+QA::Page::Group::Settings::General.prepend_mod_with('Page::Group::Settings::General', namespace: QA)
diff --git a/qa/qa/page/group/settings/package_registries.rb b/qa/qa/page/group/settings/package_registries.rb
index ee5ca849a47..8a2802b0035 100644
--- a/qa/qa/page/group/settings/package_registries.rb
+++ b/qa/qa/page/group/settings/package_registries.rb
@@ -11,7 +11,7 @@ module QA
element :package_registry_settings_content
end
- view 'app/assets/javascripts/packages_and_registries/settings/group/components/maven_settings.vue' do
+ view 'app/assets/javascripts/packages_and_registries/settings/group/components/group_settings_app.vue' do
element :allow_duplicates_toggle
element :allow_duplicates_label
end
diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb
index 048119d65cb..3b3057a9acb 100644
--- a/qa/qa/page/main/login.rb
+++ b/qa/qa/page/main/login.rb
@@ -52,13 +52,17 @@ module QA
using_wait_time 0 do
set_initial_password_if_present
- raise 'If an LDAP user is provided, it must be used for sign-in', QA::Resource::User::InvalidUserError if Runtime::User.ldap_user? && user && user.username != Runtime::User.ldap_username
+ if Runtime::User.ldap_user? && user && user.username != Runtime::User.ldap_username
+ raise 'If an LDAP user is provided, it must be used for sign-in', QA::Resource::User::InvalidUserError
+ end
if Runtime::User.ldap_user?
sign_in_using_ldap_credentials(user: user || Runtime::User)
else
sign_in_using_gitlab_credentials(user: user || Runtime::User, skip_page_validation: skip_page_validation)
end
+
+ set_up_new_password_if_required(user: user, skip_page_validation: skip_page_validation)
end
end
@@ -70,7 +74,6 @@ module QA
using_wait_time 0 do
set_initial_password_if_present
-
sign_in_using_gitlab_credentials(user: admin)
end
@@ -168,6 +171,20 @@ module QA
Page::Main::Menu.validate_elements_present! unless skip_page_validation
end
+ # Handle request for password change
+ # Happens on clean GDK installations when seeded root admin password is expired
+ #
+ def set_up_new_password_if_required(user:, skip_page_validation:)
+ return unless has_content?('Set up new password')
+
+ Profile::Password.perform do |new_password_page|
+ password = user&.password || Runtime::User.password
+ new_password_page.set_new_password(password, password)
+ end
+
+ sign_in_using_credentials(user: user, skip_page_validation: skip_page_validation)
+ end
+
def set_initial_password_if_present
return unless has_content?('Change your password')
diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb
index f0df901a8f0..f796f4c9475 100644
--- a/qa/qa/page/main/menu.rb
+++ b/qa/qa/page/main/menu.rb
@@ -35,17 +35,24 @@ module QA
element :your_projects_link
end
+ view 'app/views/layouts/nav/groups_dropdown/_show.html.haml' do
+ element :create_group_link
+ element :import_group_link
+ end
+
view 'app/views/layouts/_search.html.haml' do
element :search_term_field
end
def go_to_groups
- within_top_menu do
- click_element :groups_dropdown
+ within_groups_menu do
+ click_element :your_groups_link
end
+ end
- page.within('.qa-groups-dropdown-sidebar') do
- click_element :your_groups_link
+ def go_to_import_group
+ within_groups_menu do
+ click_element :import_group_link
end
end
@@ -125,6 +132,12 @@ module QA
end
end
+ def click_user_profile_link
+ within_user_menu do
+ click_element(:user_profile_link)
+ end
+ end
+
def search_for(term)
fill_element :search_term_field, "#{term}\n"
end
@@ -167,6 +180,14 @@ module QA
end
end
+ def within_groups_menu(&block)
+ within_top_menu do
+ click_element :groups_dropdown
+ end
+
+ page.within('.qa-groups-dropdown-sidebar', &block)
+ end
+
def click_admin_area
within_top_menu { click_element :admin_area_link }
end
@@ -175,4 +196,4 @@ module QA
end
end
-QA::Page::Main::Menu.prepend_if_ee('QA::EE::Page::Main::Menu')
+QA::Page::Main::Menu.prepend_mod_with('Page::Main::Menu', namespace: QA)
diff --git a/qa/qa/page/merge_request/new.rb b/qa/qa/page/merge_request/new.rb
index 46b7bbeed84..71e51ddd504 100644
--- a/qa/qa/page/merge_request/new.rb
+++ b/qa/qa/page/merge_request/new.rb
@@ -41,4 +41,4 @@ module QA
end
end
-QA::Page::MergeRequest::New.prepend_if_ee('QA::EE::Page::MergeRequest::New')
+QA::Page::MergeRequest::New.prepend_mod_with('Page::MergeRequest::New', namespace: QA)
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb
index e1790deb3ec..5f52d48e9f6 100644
--- a/qa/qa/page/merge_request/show.rb
+++ b/qa/qa/page/merge_request/show.rb
@@ -7,50 +7,16 @@ module QA
include Page::Component::Note
include Page::Component::Issuable::Sidebar
- view 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.vue' do
- element :download_dropdown
- element :download_email_patches_menu_item
- element :download_plain_diff_menu_item
- element :open_in_web_ide_button
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue' do
- element :merge_request_pipeline_info_content
- element :pipeline_link
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue' do
- element :merge_button
- element :fast_forward_message_content
- element :merge_moment_dropdown
- element :merge_immediately_menu_item
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue' do
- element :merge_request_status_content
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue' do
- element :merged_status_content
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue' do
- element :merge_request_error_content
- end
-
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue' do
- element :mr_rebase_button
- element :no_fast_forward_message_content
+ view 'app/assets/javascripts/batch_comments/components/preview_dropdown.vue' do
+ element :review_preview_dropdown
end
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue' do
- element :squash_checkbox
+ view 'app/assets/javascripts/batch_comments/components/publish_button.vue' do
+ element :submit_review_button
end
- view 'app/views/projects/merge_requests/show.html.haml' do
- element :notes_tab
- element :commits_tab
- element :diffs_tab
+ view 'app/assets/javascripts/batch_comments/components/review_bar.vue' do
+ element :review_bar_content
end
view 'app/assets/javascripts/diffs/components/compare_dropdown_layout.vue' do
@@ -70,33 +36,60 @@ module QA
view 'app/assets/javascripts/diffs/components/diff_row.vue' do
element :diff_comment_button
+ element :new_diff_line_link
end
- view 'app/assets/javascripts/diffs/components/inline_diff_table_row.vue' do
- element :new_diff_line_link
+ view 'app/assets/javascripts/notes/components/note_form.vue' do
+ element :start_review_button
+ element :comment_now_button
end
- view 'app/views/projects/merge_requests/_mr_title.html.haml' do
- element :edit_button
+ view 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.vue' do
+ element :download_dropdown
+ element :download_email_patches_menu_item
+ element :download_plain_diff_menu_item
+ element :open_in_web_ide_button
end
- view 'app/assets/javascripts/batch_comments/components/publish_button.vue' do
- element :submit_review_button
+ view 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue' do
+ element :merge_request_pipeline_info_content
+ element :pipeline_link
end
- view 'app/assets/javascripts/batch_comments/components/review_bar.vue' do
- element :review_bar_content
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue' do
+ element :merge_request_error_content
end
- view 'app/assets/javascripts/notes/components/note_form.vue' do
- element :unresolve_review_discussion_checkbox
- element :resolve_review_discussion_checkbox
- element :start_review_button
- element :comment_now_button
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue' do
+ element :cherry_pick_button
+ element :merged_status_content
+ element :revert_button
end
- view 'app/assets/javascripts/batch_comments/components/preview_dropdown.vue' do
- element :review_preview_toggle
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue' do
+ element :mr_rebase_button
+ element :no_fast_forward_message_content
+ end
+
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue' do
+ element :merge_button
+ element :fast_forward_message_content
+ element :merge_moment_dropdown
+ element :merge_immediately_menu_item
+ end
+
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue' do
+ element :squash_checkbox
+ end
+
+ view 'app/assets/javascripts/vue_shared/components/markdown/apply_suggestion.vue' do
+ element :apply_suggestion_dropdown
+ element :commit_message_field
+ element :commit_with_custom_message_button
+ end
+
+ view 'app/assets/javascripts/vue_shared/components/markdown/header.vue' do
+ element :suggestion_button
end
view 'app/assets/javascripts/vue_shared/components/markdown/suggestion_diff_header.vue' do
@@ -104,19 +97,26 @@ module QA
element :add_suggestion_batch_button
end
- view 'app/assets/javascripts/vue_shared/components/markdown/header.vue' do
- element :suggestion_button
+ view 'app/views/projects/merge_requests/_description.html.haml' do
+ element :description_content
end
- view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue' do
- element :revert_button
- element :cherry_pick_button
+ view 'app/views/projects/merge_requests/_mr_box.html.haml' do
+ element :title_content
end
- view 'app/assets/javascripts/vue_shared/components/markdown/apply_suggestion.vue' do
- element :apply_suggestion_button
- element :commit_message_textbox
- element :commit_with_custom_message_button
+ view 'app/views/projects/merge_requests/_mr_title.html.haml' do
+ element :edit_button
+ end
+
+ view 'app/views/projects/merge_requests/show.html.haml' do
+ element :notes_tab
+ element :commits_tab
+ element :diffs_tab
+ end
+
+ view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue' do
+ element :cancel_auto_merge_button
end
def start_review
@@ -131,21 +131,13 @@ module QA
click_element(:target_version_dropdown)
end
- def comment_now
- click_element(:comment_now_button)
-
- # After clicking the button, wait for it to disappear
- # before moving on to the next part of the test
- has_no_element?(:comment_now_button)
- end
-
def version_dropdown_content
find_element(:dropdown_content).text
end
def submit_pending_reviews
within_element(:review_bar_content) do
- click_element(:review_preview_toggle)
+ click_element(:review_preview_dropdown)
click_element(:submit_review_button)
# After clicking the button, wait for it to disappear
@@ -154,22 +146,6 @@ module QA
end
end
- def discard_pending_reviews
- within_element(:review_bar_content) do
- click_element(:discard_review)
- end
- click_element(:modal_delete_pending_comments)
- end
-
- def resolve_review_discussion
- scroll_to_element(:start_review_button)
- check_element(:resolve_review_discussion_checkbox)
- end
-
- def unresolve_review_discussion
- check_element(:unresolve_review_discussion_checkbox)
- end
-
def add_comment_to_diff(text)
wait_until(sleep_interval: 5) do
has_css?('a[data-linenumber="1"]')
@@ -230,11 +206,11 @@ module QA
end
def has_title?(title)
- has_element?(:title, text: title)
+ has_element?(:title_content, text: title)
end
def has_description?(description)
- has_element?(:description, text: description)
+ has_element?(:description_content, text: description)
end
def mark_to_squash
@@ -253,11 +229,6 @@ module QA
raise "Merge did not appear to be successful" unless merged?
end
- def merge_immediately!
- click_element(:merge_moment_dropdown)
- click_element(:merge_immediately_menu_item)
- end
-
def merge_when_pipeline_succeeds!
wait_until_ready_to_merge
@@ -281,10 +252,6 @@ module QA
has_element?(:merge_button, disabled: false)
end
- def merge_request_status
- find_element(:merge_request_status_content).text
- end
-
# Waits up 60 seconds and raises an error if unable to merge
def wait_until_ready_to_merge
has_element?(:merge_button)
@@ -363,8 +330,8 @@ module QA
end
def apply_suggestion_with_message(message)
- click_element(:apply_suggestion_button)
- fill_element(:commit_message_textbox, message)
+ click_element(:apply_suggestion_dropdown)
+ fill_element(:commit_message_field, message)
click_element(:commit_with_custom_message_button)
end
@@ -385,9 +352,13 @@ module QA
click_element(:revert_button, Page::Component::CommitModal)
click_element(:submit_commit_button)
end
+
+ def cancel_auto_merge!
+ click_element(:cancel_auto_merge_button)
+ end
end
end
end
end
-QA::Page::MergeRequest::Show.prepend_if_ee('QA::EE::Page::MergeRequest::Show')
+QA::Page::MergeRequest::Show.prepend_mod_with('Page::MergeRequest::Show', namespace: QA)
diff --git a/qa/qa/page/milestone/show.rb b/qa/qa/page/milestone/show.rb
index 42efbd4ea30..0ab966534a3 100644
--- a/qa/qa/page/milestone/show.rb
+++ b/qa/qa/page/milestone/show.rb
@@ -30,4 +30,4 @@ module QA
end
end
-QA::Page::Milestone::Show.prepend_if_ee('QA::EE::Page::Milestone::Show')
+QA::Page::Milestone::Show.prepend_mod_with('Page::Milestone::Show', namespace: QA)
diff --git a/qa/qa/page/profile/menu.rb b/qa/qa/page/profile/menu.rb
index 41c350f94ef..a12db2918dc 100644
--- a/qa/qa/page/profile/menu.rb
+++ b/qa/qa/page/profile/menu.rb
@@ -56,4 +56,4 @@ module QA
end
end
-QA::Page::Profile::Menu.prepend_if_ee('QA::EE::Page::Profile::Menu')
+QA::Page::Profile::Menu.prepend_mod_with('Page::Profile::Menu', namespace: QA)
diff --git a/qa/qa/page/profile/password.rb b/qa/qa/page/profile/password.rb
index ce062f39edb..ee042450f8d 100644
--- a/qa/qa/page/profile/password.rb
+++ b/qa/qa/page/profile/password.rb
@@ -11,12 +11,26 @@ module QA
element :save_password_button
end
+ view 'app/views/profiles/passwords/new.html.haml' do
+ element :current_password_field
+ element :new_password_field
+ element :confirm_password_field
+ element :set_new_password_button
+ end
+
def update_password(new_password, current_password)
find_element(:current_password_field).set current_password
find_element(:new_password_field).set new_password
find_element(:confirm_password_field).set new_password
click_element(:save_password_button)
end
+
+ def set_new_password(new_password, current_password)
+ fill_element :current_password_field, current_password
+ fill_element :new_password_field, new_password
+ fill_element :confirm_password_field, new_password
+ click_element :set_new_password_button
+ end
end
end
end
diff --git a/qa/qa/page/project/artifact/show.rb b/qa/qa/page/project/artifact/show.rb
new file mode 100644
index 00000000000..437363d4a98
--- /dev/null
+++ b/qa/qa/page/project/artifact/show.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Project
+ module Artifact
+ class Show < QA::Page::Base
+ view 'app/views/projects/artifacts/_tree_directory.html.haml' do
+ element :directory_name_link
+ end
+
+ def go_to_directory(name)
+ click_element(:directory_name_link, directory_name: name)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/project/commit/show.rb b/qa/qa/page/project/commit/show.rb
index f732eb6565e..bc44a4e5e72 100644
--- a/qa/qa/page/project/commit/show.rb
+++ b/qa/qa/page/project/commit/show.rb
@@ -11,11 +11,18 @@ module QA
view 'app/assets/javascripts/projects/commit/components/commit_options_dropdown.vue' do
element :options_button
+ element :revert_button
element :cherry_pick_button
element :email_patches
element :plain_diff
end
+ def revert_commit
+ click_element(:options_button)
+ click_element(:revert_button, Page::Component::CommitModal)
+ click_element(:submit_commit_button)
+ end
+
def cherry_pick_commit
click_element(:options_button)
click_element(:cherry_pick_button, Page::Component::CommitModal)
diff --git a/qa/qa/page/project/issue/index.rb b/qa/qa/page/project/issue/index.rb
index 10ddd52719a..fc46f7a2936 100644
--- a/qa/qa/page/project/issue/index.rb
+++ b/qa/qa/page/project/issue/index.rb
@@ -85,4 +85,4 @@ module QA
end
end
-QA::Page::Project::Issue::Index.prepend_if_ee('QA::EE::Page::Project::Issue::Index')
+QA::Page::Project::Issue::Index.prepend_mod_with('Page::Project::Issue::Index', namespace: QA)
diff --git a/qa/qa/page/project/issue/show.rb b/qa/qa/page/project/issue/show.rb
index db2f5f9b3dc..7a5a153db86 100644
--- a/qa/qa/page/project/issue/show.rb
+++ b/qa/qa/page/project/issue/show.rb
@@ -70,4 +70,4 @@ module QA
end
end
-QA::Page::Project::Issue::Show.prepend_if_ee('QA::EE::Page::Project::Issue::Show')
+QA::Page::Project::Issue::Show.prepend_mod_with('Page::Project::Issue::Show', namespace: QA)
diff --git a/qa/qa/page/project/job/show.rb b/qa/qa/page/project/job/show.rb
index 8c70d0874c4..78b6bebe02e 100644
--- a/qa/qa/page/project/job/show.rb
+++ b/qa/qa/page/project/job/show.rb
@@ -75,4 +75,4 @@ module QA
end
end
-QA::Page::Project::Job::Show.prepend_if_ee('QA::EE::Page::Project::Job::Show')
+QA::Page::Project::Job::Show.prepend_mod_with('Page::Project::Job::Show', namespace: QA)
diff --git a/qa/qa/page/project/menu.rb b/qa/qa/page/project/menu.rb
index cb7323ac62d..ffabaf30374 100644
--- a/qa/qa/page/project/menu.rb
+++ b/qa/qa/page/project/menu.rb
@@ -13,29 +13,15 @@ module QA
include SubMenus::Settings
include SubMenus::Packages
- view 'app/views/layouts/nav/sidebar/_project_menus.html.haml' do
- element :merge_requests_link
- element :snippets_link
- element :members_link
- end
-
- view 'app/views/layouts/nav/sidebar/_wiki_link.html.haml' do
- element :wiki_link
- end
-
- view 'app/views/shared/nav/_sidebar_menu_item.html.haml' do
- element :sidebar_menu_item_link
- end
-
def click_merge_requests
within_sidebar do
- click_element(:merge_requests_link)
+ click_element(:sidebar_menu_link, menu_item: 'Merge requests')
end
end
def click_wiki
within_sidebar do
- click_element(:wiki_link)
+ click_element(:sidebar_menu_link, menu_item: 'Wiki')
end
end
@@ -47,13 +33,13 @@ module QA
def click_snippets
within_sidebar do
- click_element(:snippets_link)
+ click_element(:sidebar_menu_link, menu_item: 'Snippets')
end
end
def click_members
within_sidebar do
- click_element(:members_link)
+ click_element(:sidebar_menu_link, menu_item: 'Members')
end
end
end
@@ -61,4 +47,4 @@ module QA
end
end
-QA::Page::Project::Menu.prepend_if_ee('QA::EE::Page::Project::Menu')
+QA::Page::Project::Menu.prepend_mod_with('Page::Project::Menu', namespace: QA)
diff --git a/qa/qa/page/project/new.rb b/qa/qa/page/project/new.rb
index d1033dbfca9..b14afa90442 100644
--- a/qa/qa/page/project/new.rb
+++ b/qa/qa/page/project/new.rb
@@ -4,13 +4,9 @@ module QA
module Page
module Project
class New < Page::Base
- include Page::Component::Select2
include Page::Component::Project::Templates
-
- view 'app/views/projects/new.html.haml' do
- element :project_create_from_template_tab
- element :import_project_tab, "Import project" # rubocop:disable QA/ElementWithPattern
- end
+ include Page::Component::Select2
+ include Page::Component::VisibilitySetting
view 'app/views/projects/_new_project_fields.html.haml' do
element :initialize_with_readme_checkbox
@@ -28,6 +24,19 @@ module QA
element :template_option_row
end
+ view 'app/assets/javascripts/vue_shared/new_namespace/components/welcome.vue' do
+ element :blank_project_link, ':data-qa-selector="`${panel.name}_link`"' # rubocop:disable QA/ElementWithPattern
+ element :create_from_template_link, ':data-qa-selector="`${panel.name}_link`"' # rubocop:disable QA/ElementWithPattern
+ end
+
+ def click_blank_project_link
+ click_element :blank_project_link
+ end
+
+ def click_create_from_template_link
+ click_element :create_from_template_link
+ end
+
def choose_test_namespace
choose_namespace(Runtime::Namespace.path)
end
@@ -75,4 +84,4 @@ module QA
end
end
-QA::Page::Project::New.prepend_if_ee('QA::EE::Page::Project::New')
+QA::Page::Project::New.prepend_mod_with('Page::Project::New', namespace: QA)
diff --git a/qa/qa/page/project/new_experiment.rb b/qa/qa/page/project/new_experiment.rb
deleted file mode 100644
index 813f7f6cefe..00000000000
--- a/qa/qa/page/project/new_experiment.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Page
- module Project
- class NewExperiment < Page::Base
- view 'app/assets/javascripts/projects/experiment_new_project_creation/components/welcome.vue' do
- element :blank_project_link, ':data-qa-selector="`${panel.name}_link`"' # rubocop:disable QA/ElementWithPattern
- element :create_from_template_link, ':data-qa-selector="`${panel.name}_link`"' # rubocop:disable QA/ElementWithPattern
- end
-
- def shown?
- has_element? :blank_project_link
- end
-
- def click_blank_project_link
- click_element :blank_project_link
- end
-
- def click_create_from_template_link
- click_element :create_from_template_link
- end
- end
- end
- end
-end
diff --git a/qa/qa/page/project/operations/metrics/show.rb b/qa/qa/page/project/operations/metrics/show.rb
index 6e8a52ab2e6..22a7f1eed8f 100644
--- a/qa/qa/page/project/operations/metrics/show.rb
+++ b/qa/qa/page/project/operations/metrics/show.rb
@@ -134,4 +134,4 @@ module QA
end
end
-QA::Page::Project::Operations::Metrics::Show.prepend_if_ee('QA::EE::Page::Project::Operations::Metrics::Show')
+QA::Page::Project::Operations::Metrics::Show.prepend_mod_with('Page::Project::Operations::Metrics::Show', namespace: QA)
diff --git a/qa/qa/page/project/packages/index.rb b/qa/qa/page/project/packages/index.rb
index 396d3373b8a..7794677b9b5 100644
--- a/qa/qa/page/project/packages/index.rb
+++ b/qa/qa/page/project/packages/index.rb
@@ -27,4 +27,4 @@ module QA
end
end
-QA::Page::Project::Packages::Index.prepend_if_ee('QA::EE::Page::Project::Packages::Index')
+QA::Page::Project::Packages::Index.prepend_mod_with('Page::Project::Packages::Index', namespace: QA)
diff --git a/qa/qa/page/project/pipeline/index.rb b/qa/qa/page/project/pipeline/index.rb
index 3cb466abce9..f7c5d149593 100644
--- a/qa/qa/page/project/pipeline/index.rb
+++ b/qa/qa/page/project/pipeline/index.rb
@@ -67,4 +67,4 @@ module QA
end
end
-QA::Page::Project::Pipeline::Index.prepend_if_ee('QA::EE::Page::Project::Pipeline::Index')
+QA::Page::Project::Pipeline::Index.prepend_mod_with('Page::Project::Pipeline::Index', namespace: QA)
diff --git a/qa/qa/page/project/pipeline/show.rb b/qa/qa/page/project/pipeline/show.rb
index c5887b84be6..d45eeac46f6 100644
--- a/qa/qa/page/project/pipeline/show.rb
+++ b/qa/qa/page/project/pipeline/show.rb
@@ -117,4 +117,4 @@ module QA
end
end
-QA::Page::Project::Pipeline::Show.prepend_if_ee('QA::EE::Page::Project::Pipeline::Show')
+QA::Page::Project::Pipeline::Show.prepend_mod_with('Page::Project::Pipeline::Show', namespace: QA)
diff --git a/qa/qa/page/project/settings/ci_cd.rb b/qa/qa/page/project/settings/ci_cd.rb
index 7224fdae10e..c537db34a51 100644
--- a/qa/qa/page/project/settings/ci_cd.rb
+++ b/qa/qa/page/project/settings/ci_cd.rb
@@ -43,4 +43,4 @@ module QA
end
end
-QA::Page::Project::Settings::CICD.prepend_if_ee("QA::EE::Page::Project::Settings::CICD")
+QA::Page::Project::Settings::CICD.prepend_mod_with("Page::Project::Settings::CICD", namespace: QA)
diff --git a/qa/qa/page/project/settings/deploy_keys.rb b/qa/qa/page/project/settings/deploy_keys.rb
index 8d655b0684e..467799a14fb 100644
--- a/qa/qa/page/project/settings/deploy_keys.rb
+++ b/qa/qa/page/project/settings/deploy_keys.rb
@@ -6,59 +6,64 @@ module QA
module Settings
class DeployKeys < Page::Base
view 'app/views/shared/deploy_keys/_form.html.haml' do
- element :deploy_key_title, 'text_field :title' # rubocop:disable QA/ElementWithPattern
- element :deploy_key_key, 'text_area :key' # rubocop:disable QA/ElementWithPattern
+ element :deploy_key_title_field
+ element :deploy_key_field
+ end
+
+ view 'app/views/shared/deploy_keys/_project_group_form.html.haml' do
+ element :deploy_key_title_field
+ element :deploy_key_field
+ element :add_deploy_key_button
end
view 'app/assets/javascripts/deploy_keys/components/app.vue' do
- element :deploy_keys_section, /class=".*deploy\-keys.*"/ # rubocop:disable QA/ElementWithPattern
- element :project_deploy_keys
+ element :project_deploy_keys_container
end
view 'app/assets/javascripts/deploy_keys/components/key.vue' do
- element :key
- element :key_title
- element :key_md5_fingerprint
+ element :key_container
+ element :key_title_content
+ element :key_md5_fingerprint_content
end
def add_key
- click_on 'Add key'
+ click_element(:add_deploy_key_button)
end
def fill_key_title(title)
- fill_in 'deploy_key_title', with: title
+ fill_element(:deploy_key_title_field, title)
end
def fill_key_value(key)
- fill_in 'deploy_key_key', with: key
+ fill_element(:deploy_key_field, key)
end
def find_md5_fingerprint(title)
within_project_deploy_keys do
- find_element(:key, text: title)
- .find(element_selector_css(:key_md5_fingerprint)).text.delete_prefix('MD5:')
+ find_element(:key_container, text: title)
+ .find(element_selector_css(:key_md5_fingerprint_content)).text.delete_prefix('MD5:')
end
end
def has_key?(title, md5_fingerprint)
within_project_deploy_keys do
- find_element(:key, text: title)
- .has_css?(element_selector_css(:key_md5_fingerprint), text: "MD5:#{md5_fingerprint}")
+ find_element(:key_container, text: title)
+ .has_css?(element_selector_css(:key_md5_fingerprint_content), text: "MD5:#{md5_fingerprint}")
end
end
def key_title
within_project_deploy_keys do
- find_element(:key_title).text
+ find_element(:key_title_content).text
end
end
private
def within_project_deploy_keys
- has_element?(:project_deploy_keys, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME)
+ has_element?(:project_deploy_keys_container, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME)
- within_element(:project_deploy_keys) do
+ within_element(:project_deploy_keys_container) do
yield
end
end
diff --git a/qa/qa/page/project/settings/deploy_tokens.rb b/qa/qa/page/project/settings/deploy_tokens.rb
index 3c3ed4f8716..b26cae86d8b 100644
--- a/qa/qa/page/project/settings/deploy_tokens.rb
+++ b/qa/qa/page/project/settings/deploy_tokens.rb
@@ -6,54 +6,54 @@ module QA
module Settings
class DeployTokens < Page::Base
view 'app/views/shared/deploy_tokens/_form.html.haml' do
- element :deploy_token_name
- element :deploy_token_expires_at
- element :deploy_token_read_repository
- element :deploy_token_read_registry
- element :create_deploy_token
+ element :deploy_token_name_field
+ element :deploy_token_expires_at_field
+ element :deploy_token_read_repository_checkbox
+ element :deploy_token_read_registry_checkbox
+ element :create_deploy_token_button
end
view 'app/views/shared/deploy_tokens/_new_deploy_token.html.haml' do
- element :created_deploy_token_section
- element :deploy_token_user
- element :deploy_token
+ element :created_deploy_token_container
+ element :deploy_token_user_field
+ element :deploy_token_field
end
def fill_token_name(name)
- fill_element :deploy_token_name, name
+ fill_element(:deploy_token_name_field, name)
end
def fill_token_expires_at(expires_at)
- fill_element :deploy_token_expires_at, expires_at.to_s + "\n"
+ fill_element(:deploy_token_expires_at_field, expires_at.to_s + "\n")
end
def fill_scopes(read_repository:, read_registry:)
- check_element :deploy_token_read_repository if read_repository
- check_element :deploy_token_read_registry if read_registry
+ check_element(:deploy_token_read_repository_checkbox) if read_repository
+ check_element(:deploy_token_read_registry_checkbox) if read_registry
end
def add_token
- click_element :create_deploy_token
+ click_element(:create_deploy_token_button)
end
def token_username
within_new_project_deploy_token do
- find_element(:deploy_token_user).value
+ find_element(:deploy_token_user_field).value
end
end
def token_password
within_new_project_deploy_token do
- find_element(:deploy_token).value
+ find_element(:deploy_token_field).value
end
end
private
def within_new_project_deploy_token
- has_element?(:created_deploy_token_section, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME)
+ has_element?(:created_deploy_token_container, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME)
- within_element(:created_deploy_token_section) do
+ within_element(:created_deploy_token_container) do
yield
end
end
diff --git a/qa/qa/page/project/settings/integrations.rb b/qa/qa/page/project/settings/integrations.rb
index 6f5c50eac52..420dcb63918 100644
--- a/qa/qa/page/project/settings/integrations.rb
+++ b/qa/qa/page/project/settings/integrations.rb
@@ -23,4 +23,4 @@ module QA
end
end
-QA::Page::Project::Settings::Integrations.prepend_if_ee('QA::EE::Page::Project::Settings::Integrations')
+QA::Page::Project::Settings::Integrations.prepend_mod_with('Page::Project::Settings::Integrations', namespace: QA)
diff --git a/qa/qa/page/project/settings/main.rb b/qa/qa/page/project/settings/main.rb
index 48af635bb79..5efcb7bf23c 100644
--- a/qa/qa/page/project/settings/main.rb
+++ b/qa/qa/page/project/settings/main.rb
@@ -57,4 +57,4 @@ module QA
end
end
-QA::Page::Project::Settings::Main.prepend_if_ee("QA::EE::Page::Project::Settings::Main")
+QA::Page::Project::Settings::Main.prepend_mod_with("Page::Project::Settings::Main", namespace: QA)
diff --git a/qa/qa/page/project/settings/merge_request.rb b/qa/qa/page/project/settings/merge_request.rb
index 0b4a12dbb2e..dbe804bfdd0 100644
--- a/qa/qa/page/project/settings/merge_request.rb
+++ b/qa/qa/page/project/settings/merge_request.rb
@@ -12,7 +12,7 @@ module QA
end
view 'app/views/projects/_merge_request_merge_method_settings.html.haml' do
- element :merge_ff_radio_button
+ element :merge_ff_radio
end
view 'app/views/projects/_merge_request_merge_checks_settings.html.haml' do
@@ -24,7 +24,7 @@ module QA
end
def enable_ff_only
- click_element(:merge_ff_radio_button)
+ choose_element(:merge_ff_radio)
click_save_changes
end
@@ -38,4 +38,4 @@ module QA
end
end
-QA::Page::Project::Settings::MergeRequest.prepend_if_ee("QA::EE::Page::Project::Settings::MergeRequest")
+QA::Page::Project::Settings::MergeRequest.prepend_mod_with("Page::Project::Settings::MergeRequest", namespace: QA)
diff --git a/qa/qa/page/project/settings/mirroring_repositories.rb b/qa/qa/page/project/settings/mirroring_repositories.rb
index ce369c90a9f..5e7b68858c8 100644
--- a/qa/qa/page/project/settings/mirroring_repositories.rb
+++ b/qa/qa/page/project/settings/mirroring_repositories.rb
@@ -129,4 +129,4 @@ module QA
end
end
-QA::Page::Project::Settings::MirroringRepositories.prepend_if_ee('QA::EE::Page::Project::Settings::MirroringRepositories')
+QA::Page::Project::Settings::MirroringRepositories.prepend_mod_with('Page::Project::Settings::MirroringRepositories', namespace: QA)
diff --git a/qa/qa/page/project/settings/protected_branches.rb b/qa/qa/page/project/settings/protected_branches.rb
index 6616921f34c..308cf6366a7 100644
--- a/qa/qa/page/project/settings/protected_branches.rb
+++ b/qa/qa/page/project/settings/protected_branches.rb
@@ -69,4 +69,4 @@ module QA
end
end
-QA::Page::Project::Settings::ProtectedBranches.prepend_if_ee('QA::EE::Page::Project::Settings::ProtectedBranches')
+QA::Page::Project::Settings::ProtectedBranches.prepend_mod_with('Page::Project::Settings::ProtectedBranches', namespace: QA)
diff --git a/qa/qa/page/project/settings/protected_tags.rb b/qa/qa/page/project/settings/protected_tags.rb
index bf8f349cfd5..d9f383154f9 100644
--- a/qa/qa/page/project/settings/protected_tags.rb
+++ b/qa/qa/page/project/settings/protected_tags.rb
@@ -43,4 +43,4 @@ module QA
end
end
-QA::Page::Project::Settings::ProtectedTags.prepend_if_ee('QA::EE::Page::Project::Settings::ProtectedTags')
+QA::Page::Project::Settings::ProtectedTags.prepend_mod_with('Page::Project::Settings::ProtectedTags', namespace: QA)
diff --git a/qa/qa/page/project/settings/repository.rb b/qa/qa/page/project/settings/repository.rb
index 407c131fa73..a02b3d6a7d6 100644
--- a/qa/qa/page/project/settings/repository.rb
+++ b/qa/qa/page/project/settings/repository.rb
@@ -62,4 +62,4 @@ module QA
end
end
-QA::Page::Project::Settings::Repository.prepend_if_ee('QA::EE::Page::Project::Settings::Repository')
+QA::Page::Project::Settings::Repository.prepend_mod_with('Page::Project::Settings::Repository', namespace: QA)
diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb
index d8c6b3881bd..c174d4b0c3f 100644
--- a/qa/qa/page/project/show.rb
+++ b/qa/qa/page/project/show.rb
@@ -147,7 +147,7 @@ module QA
end
def open_web_ide!
- click_element :web_ide_button
+ click_element(:web_ide_button)
end
def has_edit_fork_button?
@@ -180,4 +180,4 @@ module QA
end
end
-QA::Page::Project::Show.prepend_if_ee('QA::EE::Page::Project::Show')
+QA::Page::Project::Show.prepend_mod_with('Page::Project::Show', namespace: QA)
diff --git a/qa/qa/page/project/snippet/index.rb b/qa/qa/page/project/snippet/index.rb
index a221abc4196..fc677f96769 100644
--- a/qa/qa/page/project/snippet/index.rb
+++ b/qa/qa/page/project/snippet/index.rb
@@ -26,4 +26,4 @@ module QA
end
end
-QA::Page::Project::Snippet::Index.prepend_if_ee('QA::EE::Page::Project::Snippet::Index')
+QA::Page::Project::Snippet::Index.prepend_mod_with('Page::Project::Snippet::Index', namespace: QA)
diff --git a/qa/qa/page/project/sub_menus/ci_cd.rb b/qa/qa/page/project/sub_menus/ci_cd.rb
index 398712c04d2..7cb2fd6c655 100644
--- a/qa/qa/page/project/sub_menus/ci_cd.rb
+++ b/qa/qa/page/project/sub_menus/ci_cd.rb
@@ -12,16 +12,12 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/layouts/nav/sidebar/_project_menus.html.haml' do
- element :link_pipelines
- end
end
end
def click_ci_cd_pipelines
within_sidebar do
- click_element :link_pipelines
+ click_element(:sidebar_menu_link, menu_item: 'CI/CD')
end
end
end
diff --git a/qa/qa/page/project/sub_menus/common.rb b/qa/qa/page/project/sub_menus/common.rb
index 85bf932be4a..c20710bc393 100644
--- a/qa/qa/page/project/sub_menus/common.rb
+++ b/qa/qa/page/project/sub_menus/common.rb
@@ -8,6 +8,20 @@ module QA
extend QA::Page::PageConcern
include QA::Page::SubMenus::Common
+ def self.included(base)
+ super
+
+ base.class_eval do
+ view 'app/views/shared/nav/_sidebar_menu_item.html.haml' do
+ element :sidebar_menu_item_link
+ end
+
+ view 'app/views/shared/nav/_sidebar_menu.html.haml' do
+ element :sidebar_menu_link
+ end
+ end
+ end
+
private
def sidebar_element
diff --git a/qa/qa/page/project/sub_menus/issues.rb b/qa/qa/page/project/sub_menus/issues.rb
index 384af3fb53e..1df93d1118b 100644
--- a/qa/qa/page/project/sub_menus/issues.rb
+++ b/qa/qa/page/project/sub_menus/issues.rb
@@ -12,32 +12,25 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/layouts/nav/sidebar/_project_menus.html.haml' do
- element :issue_boards_link
- element :issues_item
- element :labels_link
- element :milestones_link
- end
end
end
def click_issues
within_sidebar do
- click_link('Issues')
+ click_element(:sidebar_menu_link, menu_item: 'Issues')
end
end
def click_milestones
within_sidebar do
- click_element :milestones_link
+ click_element(:sidebar_menu_item_link, menu_item: 'Milestones')
end
end
def go_to_boards
hover_issues do
within_submenu do
- click_element(:issue_boards_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Boards')
end
end
end
@@ -45,7 +38,7 @@ module QA
def go_to_labels
hover_issues do
within_submenu do
- click_element(:labels_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Labels')
end
end
end
@@ -53,7 +46,7 @@ module QA
def go_to_milestones
hover_issues do
within_submenu do
- click_element(:milestones_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Milestones')
end
end
end
@@ -62,8 +55,8 @@ module QA
def hover_issues
within_sidebar do
- scroll_to_element(:issues_item)
- find_element(:issues_item).hover
+ scroll_to_element(:sidebar_menu_link, menu_item: 'Issues')
+ find_element(:sidebar_menu_link, menu_item: 'Issues').hover
yield
end
diff --git a/qa/qa/page/project/sub_menus/operations.rb b/qa/qa/page/project/sub_menus/operations.rb
index af716d1af0d..077da697a63 100644
--- a/qa/qa/page/project/sub_menus/operations.rb
+++ b/qa/qa/page/project/sub_menus/operations.rb
@@ -12,20 +12,13 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/layouts/nav/sidebar/_project_menus.html.haml' do
- element :operations_link
- element :operations_environments_link
- element :operations_metrics_link
- element :operations_incidents_link
- end
end
end
def go_to_operations_environments
hover_operations do
within_submenu do
- click_element(:operations_environments_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Environments')
end
end
end
@@ -33,7 +26,7 @@ module QA
def go_to_operations_metrics
hover_operations do
within_submenu do
- click_element(:operations_metrics_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Metrics')
end
end
end
@@ -49,7 +42,7 @@ module QA
def go_to_operations_incidents
hover_operations do
within_submenu do
- click_element(:operations_incidents_link)
+ click_element(:sidebar_menu_item_link, menu_item: 'Incidents')
end
end
end
@@ -58,8 +51,8 @@ module QA
def hover_operations
within_sidebar do
- scroll_to_element(:operations_link)
- find_element(:operations_link).hover
+ scroll_to_element(:sidebar_menu_link, menu_item: 'Operations')
+ find_element(:sidebar_menu_link, menu_item: 'Operations').hover
yield
end
diff --git a/qa/qa/page/project/sub_menus/packages.rb b/qa/qa/page/project/sub_menus/packages.rb
index 46eae01e10d..88e2101a86d 100644
--- a/qa/qa/page/project/sub_menus/packages.rb
+++ b/qa/qa/page/project/sub_menus/packages.rb
@@ -7,19 +7,11 @@ module QA
module Packages
extend QA::Page::PageConcern
- def self.included(base)
- super
-
- base.class_eval do
- view 'app/views/layouts/nav/sidebar/_project_packages_link.html.haml' do
- element :packages_link
- end
- end
- end
-
def click_packages_link
- within_sidebar do
- click_element :packages_link
+ hover_registry do
+ within_submenu do
+ click_element(:sidebar_menu_item_link, menu_item: 'Package Registry')
+ end
end
end
@@ -35,8 +27,8 @@ module QA
def hover_registry
within_sidebar do
- scroll_to_element(:packages_link)
- find_element(:packages_link).hover
+ scroll_to_element(:sidebar_menu_link, menu_item: 'Packages & Registries')
+ find_element(:sidebar_menu_link, menu_item: 'Packages & Registries').hover
yield
end
diff --git a/qa/qa/page/project/sub_menus/project.rb b/qa/qa/page/project/sub_menus/project.rb
index ecb3148b486..5499a0f71e3 100644
--- a/qa/qa/page/project/sub_menus/project.rb
+++ b/qa/qa/page/project/sub_menus/project.rb
@@ -12,10 +12,6 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/shared/nav/_sidebar_menu.html.haml' do
- element :sidebar_menu_link
- end
end
end
diff --git a/qa/qa/page/project/sub_menus/repository.rb b/qa/qa/page/project/sub_menus/repository.rb
index 458f0cddab6..e35828ecd6a 100644
--- a/qa/qa/page/project/sub_menus/repository.rb
+++ b/qa/qa/page/project/sub_menus/repository.rb
@@ -12,14 +12,6 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/shared/nav/_sidebar_menu_item.html.haml' do
- element :sidebar_menu_item_link
- end
-
- view 'app/views/shared/nav/_sidebar_menu.html.haml' do
- element :sidebar_menu_link
- end
end
end
diff --git a/qa/qa/page/project/sub_menus/settings.rb b/qa/qa/page/project/sub_menus/settings.rb
index 531c4686345..80f62c8efde 100644
--- a/qa/qa/page/project/sub_menus/settings.rb
+++ b/qa/qa/page/project/sub_menus/settings.rb
@@ -12,21 +12,13 @@ module QA
base.class_eval do
include QA::Page::Project::SubMenus::Common
-
- view 'app/views/layouts/nav/sidebar/_project_menus.html.haml' do
- element :settings_item
- element :general_settings_link
- element :integrations_settings_link
- element :operations_settings_link
- element :access_tokens_settings_link
- end
end
end
def go_to_ci_cd_settings
hover_settings do
within_submenu do
- click_link('CI/CD')
+ click_element(:sidebar_menu_item_link, menu_item: 'CI/CD')
end
end
end
@@ -34,7 +26,7 @@ module QA
def go_to_repository_settings
hover_settings do
within_submenu do
- click_link('Repository')
+ click_element(:sidebar_menu_item_link, menu_item: 'Repository')
end
end
end
@@ -42,21 +34,21 @@ module QA
def go_to_general_settings
hover_settings do
within_submenu do
- click_element :general_settings_link
+ click_element(:sidebar_menu_item_link, menu_item: 'General')
end
end
end
def click_settings
within_sidebar do
- click_on 'Settings'
+ click_element(:sidebar_menu_link, menu_item: 'Settings')
end
end
def go_to_integrations_settings
hover_settings do
within_submenu do
- click_element :integrations_settings_link
+ click_element(:sidebar_menu_item_link, menu_item: 'Integrations')
end
end
end
@@ -64,7 +56,7 @@ module QA
def go_to_operations_settings
hover_settings do
within_submenu do
- click_element :operations_settings_link
+ click_element(:sidebar_menu_item_link, menu_item: 'Operations')
end
end
end
@@ -72,7 +64,7 @@ module QA
def go_to_access_token_settings
hover_settings do
within_submenu do
- click_element :access_tokens_settings_link
+ click_element(:sidebar_menu_item_link, menu_item: 'Access Tokens')
end
end
end
@@ -81,8 +73,8 @@ module QA
def hover_settings
within_sidebar do
- scroll_to_element(:settings_item)
- find_element(:settings_item).hover
+ scroll_to_element(:sidebar_menu_link, menu_item: 'Settings')
+ find_element(:sidebar_menu_link, menu_item: 'Settings').hover
yield
end
diff --git a/qa/qa/page/project/web_ide/edit.rb b/qa/qa/page/project/web_ide/edit.rb
index fd68ac0de16..78b2db7d723 100644
--- a/qa/qa/page/project/web_ide/edit.rb
+++ b/qa/qa/page/project/web_ide/edit.rb
@@ -18,8 +18,8 @@ module QA
end
view 'app/assets/javascripts/ide/components/ide_tree.vue' do
- element :new_file_button
- element :new_directory_button
+ element :new_file_button, required: true
+ element :new_directory_button, required: true
end
view 'app/assets/javascripts/ide/components/ide_tree_list.vue' do
@@ -36,7 +36,7 @@ module QA
end
view 'app/assets/javascripts/ide/components/commit_sidebar/actions.vue' do
- element :commit_to_current_branch_radio
+ element :commit_to_current_branch_radio_container
end
view 'app/assets/javascripts/ide/components/commit_sidebar/form.vue' do
@@ -44,6 +44,10 @@ module QA
element :commit_button
end
+ view 'app/assets/javascripts/ide/components/commit_sidebar/radio_group.vue' do
+ element :commit_type_radio
+ end
+
view 'app/assets/javascripts/ide/components/repo_editor.vue' do
element :editor_container
end
@@ -216,7 +220,9 @@ module QA
# animation is still in process even when the buttons have the
# expected visibility.
commit_success = retry_until(sleep_interval: 5) do
- click_element(:commit_to_current_branch_radio) if has_element?(:commit_to_current_branch_radio)
+ within_element(:commit_to_current_branch_radio_container) do
+ choose_element(:commit_type_radio)
+ end
click_element(:commit_button) if has_element?(:commit_button)
# If this is the first commit, the commit SHA only appears after reloading
@@ -299,10 +305,30 @@ module QA
def switch_to_commit_tab
click_element(:commit_mode_tab)
end
+
+ 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)
+ end
+ click_element(:file_name_content, file_name: file_name)
+ end
+
+ def link_line(line_number)
+ previous_url = page.current_url
+ wait_for_animated_element(:editor_container)
+ within_element(:editor_container) do
+ find('.line-numbers', text: line_number).hover.click
+ end
+ wait_until(max_duration: 5, reload: false) do
+ page.current_url != previous_url
+ end
+ page.current_url.to_s
+ end
end
end
end
end
end
-QA::Page::Project::WebIDE::Edit.prepend_if_ee('QA::EE::Page::Component::WebIDE::WebTerminalPanel')
+QA::Page::Project::WebIDE::Edit.prepend_mod_with('Page::Component::WebIDE::WebTerminalPanel', namespace: QA)
diff --git a/qa/qa/page/project/wiki/show.rb b/qa/qa/page/project/wiki/show.rb
index f3573e3cdd3..ac42405563a 100644
--- a/qa/qa/page/project/wiki/show.rb
+++ b/qa/qa/page/project/wiki/show.rb
@@ -14,4 +14,4 @@ module QA
end
end
-QA::Page::Project::Wiki::Show.prepend_if_ee('QA::EE::Page::Project::Wiki::Show')
+QA::Page::Project::Wiki::Show.prepend_mod_with('Page::Project::Wiki::Show', namespace: QA)
diff --git a/qa/qa/page/registration/welcome.rb b/qa/qa/page/registration/welcome.rb
index 394e94b6414..ff22e62b63e 100644
--- a/qa/qa/page/registration/welcome.rb
+++ b/qa/qa/page/registration/welcome.rb
@@ -21,4 +21,4 @@ module QA
end
end
-QA::Page::Registration::Welcome.prepend_if_ee('QA::EE::Page::Registration::Welcome')
+QA::Page::Registration::Welcome.prepend_mod_with('Page::Registration::Welcome', namespace: QA)
diff --git a/qa/qa/page/trials/new.rb b/qa/qa/page/trials/new.rb
new file mode 100644
index 00000000000..268f3b71717
--- /dev/null
+++ b/qa/qa/page/trials/new.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Trials
+ class New < Chemlab::Page
+ path '/-/trials/new'
+
+ # TODO: Supplant with data-qa-selectors
+ text_field :first_name, id: 'first_name'
+ text_field :last_name, id: 'last_name'
+ text_field :company_name, id: 'company_name'
+ select :number_of_employees, id: 'company_size'
+ text_field :telephone_number, id: 'phone_number'
+ text_field :number_of_users, id: 'number_of_users'
+
+ select :country, id: 'country_select'
+
+ button :continue, value: 'Continue'
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/trials/select.rb b/qa/qa/page/trials/select.rb
new file mode 100644
index 00000000000..3da0fb46322
--- /dev/null
+++ b/qa/qa/page/trials/select.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Trials
+ class Select < Chemlab::Page
+ path '/-/trials/select'
+
+ # TODO: Supplant with data-qa-selectors
+ select :subscription_for, id: 'namespace_id'
+ text_field :new_group_name, id: 'new_group_name'
+ button :start_your_free_trial, value: 'Start your free trial'
+ radio :trial_company, id: 'trial_entity_company'
+ radio :trial_individual, id: 'trial_entity_individual'
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/user/show.rb b/qa/qa/page/user/show.rb
new file mode 100644
index 00000000000..ad2de331ad9
--- /dev/null
+++ b/qa/qa/page/user/show.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module User
+ class Show < Page::Base
+ view 'app/views/users/show.html.haml' do
+ element :follow_user_link
+ element :following_link
+ end
+
+ view 'app/views/shared/users/_user.html.haml' do
+ element :user_link
+ end
+
+ view 'app/views/users/_overview.html.haml' do
+ element :user_activity_content
+ end
+
+ def click_follow_user_link
+ click_element(:follow_user_link)
+ end
+
+ def click_following_link
+ click_element(:following_link)
+ end
+
+ def click_user_link(username)
+ click_element(:user_link, username: username)
+ end
+
+ def has_activity?(activity)
+ within_element(:user_activity_content) do
+ has_text?(activity)
+ end
+ end
+ end
+ end
+ end
+end