summaryrefslogtreecommitdiff
path: root/qa/qa/page/component
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/component')
-rw-r--r--qa/qa/page/component/badges.rb53
-rw-r--r--qa/qa/page/component/blob_content.rb4
-rw-r--r--qa/qa/page/component/design_management.rb2
-rw-r--r--qa/qa/page/component/invite_members_modal.rb6
-rw-r--r--qa/qa/page/component/issuable/sidebar.rb2
-rw-r--r--qa/qa/page/component/members_filter.rb26
-rw-r--r--qa/qa/page/component/namespace_select.rb29
-rw-r--r--qa/qa/page/component/wiki_page_form.rb13
8 files changed, 120 insertions, 15 deletions
diff --git a/qa/qa/page/component/badges.rb b/qa/qa/page/component/badges.rb
new file mode 100644
index 00000000000..f2c5f809d8d
--- /dev/null
+++ b/qa/qa/page/component/badges.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ class Badges < Page::Base
+ view 'app/assets/javascripts/badges/components/badge_form.vue' do
+ element :badge_name_field
+ element :badge_link_url_field
+ element :badge_image_url_field
+ element :add_badge_button
+ end
+
+ view 'app/assets/javascripts/badges/components/badge_list.vue' do
+ element :badge_list_content
+ element :badge_list_row
+ end
+
+ view 'app/assets/javascripts/badges/components/badge.vue' do
+ element :badge_image_link
+ end
+
+ def fill_name(name)
+ fill_element :badge_name_field, name
+ end
+
+ def fill_link_url(url)
+ fill_element :badge_link_url_field, url
+ end
+
+ def fill_image_url(url)
+ fill_element :badge_image_url_field, url
+ end
+
+ def click_add_badge_button
+ click_element :add_badge_button
+ end
+
+ def has_badge?(badge_name)
+ within_element(:badge_list_content) do
+ has_element?(:badge_list_row, badge_name: badge_name)
+ end
+ end
+
+ def has_visible_badge_image_link?(link_url)
+ within_element(:badge_list_content) do
+ has_element?(:badge_image_link, link_url: link_url)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/component/blob_content.rb b/qa/qa/page/component/blob_content.rb
index 4d36a6dcefe..ce743b24dda 100644
--- a/qa/qa/page/component/blob_content.rb
+++ b/qa/qa/page/component/blob_content.rb
@@ -22,6 +22,10 @@ module QA
element :copy_contents_button
end
+ base.view 'app/assets/javascripts/vue_shared/components/source_viewer/source_viewer.vue' do
+ element :blob_viewer_file_content
+ end
+
base.view 'app/views/projects/blob/_header_content.html.haml' do
element :file_name_content
end
diff --git a/qa/qa/page/component/design_management.rb b/qa/qa/page/component/design_management.rb
index 1f5620e30c7..73ba5713bda 100644
--- a/qa/qa/page/component/design_management.rb
+++ b/qa/qa/page/component/design_management.rb
@@ -55,7 +55,7 @@ module QA
# wait for the "Save comment" button to disappear
saved = has_no_element?(:save_comment_button)
- raise ExpectationNotMet, %q(There was a problem while adding the annotation) unless saved
+ raise RSpec::Expectations::ExpectationNotMetError, %q(There was a problem while adding the annotation) unless saved
end
def add_design(design_file_path)
diff --git a/qa/qa/page/component/invite_members_modal.rb b/qa/qa/page/component/invite_members_modal.rb
index ca6862ccb02..7c536ff651b 100644
--- a/qa/qa/page/component/invite_members_modal.rb
+++ b/qa/qa/page/component/invite_members_modal.rb
@@ -9,7 +9,7 @@ module QA
def self.included(base)
super
- base.view 'app/assets/javascripts/invite_members/components/invite_members_modal.vue' do
+ base.view 'app/assets/javascripts/invite_members/components/invite_modal_base.vue' do
element :invite_button
element :access_level_dropdown
element :invite_members_modal_content
@@ -44,9 +44,9 @@ module QA
open_invite_members_modal
within_element(:invite_members_modal_content) do
- fill_element :members_token_select_input, username
+ fill_element(:members_token_select_input, username)
Support::WaitForRequests.wait_for_requests
- click_button username
+ click_button(username, match: :prefer_exact)
set_access_level(access_level)
end
diff --git a/qa/qa/page/component/issuable/sidebar.rb b/qa/qa/page/component/issuable/sidebar.rb
index 4a81230499c..921647eb4cc 100644
--- a/qa/qa/page/component/issuable/sidebar.rb
+++ b/qa/qa/page/component/issuable/sidebar.rb
@@ -40,7 +40,7 @@ module QA
end
base.view 'app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue' do
- element :milestone_link, 'data-qa-selector="`${issuableAttribute}_link`"' # rubocop:disable QA/ElementWithPattern
+ element :milestone_link, 'data-qa-selector="`${formatIssuableAttribute.snake}_link`"' # rubocop:disable QA/ElementWithPattern
end
base.view 'app/assets/javascripts/sidebar/components/sidebar_editable_item.vue' do
diff --git a/qa/qa/page/component/members_filter.rb b/qa/qa/page/component/members_filter.rb
new file mode 100644
index 00000000000..ac07fe7e9fa
--- /dev/null
+++ b/qa/qa/page/component/members_filter.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ module MembersFilter
+ extend QA::Page::PageConcern
+
+ def self.included(base)
+ super
+
+ base.view 'app/assets/javascripts/members/components/filter_sort/members_filtered_search_bar.vue' do
+ element :members_filtered_search_bar_content
+ end
+ end
+
+ def search_member(username)
+ # TODO: Update the two actions below to use direct qa selectors once this is implemented:
+ # https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1688
+ find_element(:members_filtered_search_bar_content).find('input').set(username)
+ find('.gl-search-box-by-click-search-button').click
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/component/namespace_select.rb b/qa/qa/page/component/namespace_select.rb
new file mode 100644
index 00000000000..924e1af876c
--- /dev/null
+++ b/qa/qa/page/component/namespace_select.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ module NamespaceSelect
+ extend QA::Page::PageConcern
+
+ def self.included(base)
+ super
+
+ base.view "app/assets/javascripts/vue_shared/components/namespace_select/namespace_select.vue" do
+ element :namespaces_list
+ element :namespaces_list_groups
+ element :namespaces_list_item
+ end
+ end
+
+ def select_namespace(item)
+ click_element :namespaces_list
+
+ within_element(:namespaces_list) do
+ find_element(:namespaces_list_item, text: item).click
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/component/wiki_page_form.rb b/qa/qa/page/component/wiki_page_form.rb
index bc73fe0c3ab..8f504b784b2 100644
--- a/qa/qa/page/component/wiki_page_form.rb
+++ b/qa/qa/page/component/wiki_page_form.rb
@@ -38,7 +38,7 @@ module QA
def click_submit
click_element(:wiki_submit_button)
- wait_until(reload: false) do
+ QA::Support::Retrier.retry_on_exception do
has_no_element?(:wiki_title_textbox)
end
end
@@ -48,15 +48,8 @@ module QA
Page::Modal::DeleteWiki.perform(&:confirm_deletion)
end
- def use_new_editor(toggle)
- # Update once the feature is released, see https://gitlab.com/gitlab-org/gitlab/-/issues/345398
- if toggle
- click_element(:editing_mode_button, mode: 'Edit rich text')
- else
- within_element(:try_new_editor_container) do
- click_button('Use the new editor')
- end
- end
+ def use_new_editor
+ click_element(:editing_mode_button, mode: 'Edit rich text')
wait_until(reload: false) do
has_element?(:content_editor_container)