diff options
Diffstat (limited to 'qa/qa/page/component')
-rw-r--r-- | qa/qa/page/component/content_editor.rb | 5 | ||||
-rw-r--r-- | qa/qa/page/component/dropdown.rb | 14 | ||||
-rw-r--r-- | qa/qa/page/component/groups_filter.rb | 45 | ||||
-rw-r--r-- | qa/qa/page/component/invite_members_modal.rb | 20 | ||||
-rw-r--r-- | qa/qa/page/component/wiki_page_form.rb | 10 |
5 files changed, 50 insertions, 44 deletions
diff --git a/qa/qa/page/component/content_editor.rb b/qa/qa/page/component/content_editor.rb index e9fc575ae39..a9abda42610 100644 --- a/qa/qa/page/component/content_editor.rb +++ b/qa/qa/page/component/content_editor.rb @@ -15,7 +15,6 @@ module QA base.view 'app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue' do element :text_style_dropdown - element :text_style_menu_item end base.view 'app/assets/javascripts/content_editor/components/toolbar_image_button.vue' do @@ -33,9 +32,7 @@ module QA # wait for text style option to become active after typing has_active_element?(:text_style_dropdown, wait: 1) click_element(:text_style_dropdown) - within_element(:text_style_dropdown) do - click_element(:text_style_menu_item, text_style: heading) - end + find_element(:text_style_dropdown).find('li', text: heading).click end end diff --git a/qa/qa/page/component/dropdown.rb b/qa/qa/page/component/dropdown.rb index e6204fb5332..c3e0fefee0d 100644 --- a/qa/qa/page/component/dropdown.rb +++ b/qa/qa/page/component/dropdown.rb @@ -25,6 +25,12 @@ module QA find('span.gl-dropdown-button-text').text end + def all_items + raise NotImplementedError if use_select2? + + find_all("li.gl-dropdown-item").map(&:text) + end + def clear_current_selection_if_present return super if use_select2? @@ -40,7 +46,12 @@ module QA def search_item(item_text) return super if use_select2? - find('div.gl-search-box-by-type input[type="Search"]').set(item_text) + find('div.gl-listbox-search input[type="Search"]').set(item_text) + wait_for_search_to_complete + end + + def send_keys_to_search(item_text) + find('div.gl-listbox-search input[type="Search"]').send_keys(item_text) wait_for_search_to_complete end @@ -103,6 +114,7 @@ module QA def use_select2? @use_select2 ||= has_css?('.select2-container', wait: 1) end + # rubocop:enable Gitlab/PredicateMemoization end end diff --git a/qa/qa/page/component/groups_filter.rb b/qa/qa/page/component/groups_filter.rb index ec59d010718..ea91ced8679 100644 --- a/qa/qa/page/component/groups_filter.rb +++ b/qa/qa/page/component/groups_filter.rb @@ -24,36 +24,29 @@ module QA private + # Check if a group exists in private or public tab + # @param name [String] group name + # @return [Boolean] whether a group with given name exists def has_filtered_group?(name) - # Filter and submit to reload the page and only retrieve the filtered results - find_element(:groups_filter_field).set(name).send_keys(:return) - - # Since we submitted after filtering, the presence of - # groups_list_tree_container means we have the complete filtered list - # of groups - has_element?(:groups_list_tree_container, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME) - # If there are no groups we'll know immediately because we filtered the list - if page.has_text?('No groups or projects matched your search', -wait: 0) || page.has_text?('No groups matched your search', wait: 0) - return false unless has_element?(:public_groups_tab) - - # Try for public groups - click_element(:public_groups_tab) - # Filter and submit to reload the page and only retrieve the filtered results - find_element(:groups_filter_field).set(name).send_keys(:return) - - # Since we submitted after filtering, the presence of - # groups_list_tree_container means we have the complete filtered list - # of groups - has_element?(:groups_list_tree_container, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME) - - return false if page.has_text?('No groups or projects matched your search', -wait: 0) || page.has_text?('No groups matched your search', wait: 0) - end + filter_group(name) + return true if page.has_link?(name, wait: 0) # element containing link to group + + return false unless has_element?(:public_groups_tab, wait: 0) - # The name will be present as filter input so we check for a link, not text + # Check public groups + click_element(:public_groups_tab) + filter_group(name) page.has_link?(name, wait: 0) end + + # Filter by group name + # @param name [String] group name + # @return [Boolean] whether the filter returned any group + def filter_group(name) + fill_element(:groups_filter_field, name).send_keys(:return) + finished_loading? + has_element?(:groups_list_tree_container, wait: 1) + end end end end diff --git a/qa/qa/page/component/invite_members_modal.rb b/qa/qa/page/component/invite_members_modal.rb index 295b5134bd5..eb791594d22 100644 --- a/qa/qa/page/component/invite_members_modal.rb +++ b/qa/qa/page/component/invite_members_modal.rb @@ -41,7 +41,7 @@ module QA click_element :invite_a_group_button end - def add_member(username, access_level = 'Developer') + def add_member(username, access_level = 'Developer', refresh_page: true) open_invite_members_modal within_element(:invite_members_modal_content) do @@ -51,10 +51,10 @@ module QA set_access_level(access_level) end - send_invite + send_invite(refresh_page) end - def invite_group(group_name, access_level = 'Guest') + def invite_group(group_name, access_level = 'Guest', refresh_page: true) open_invite_group_modal within_element(:invite_members_modal_content) do @@ -69,7 +69,13 @@ module QA set_access_level(access_level) end - send_invite + send_invite(refresh_page) + end + + def send_invite(refresh = false) + click_element :invite_button + Support::WaitForRequests.wait_for_requests + page.refresh if refresh end private @@ -78,12 +84,6 @@ module QA # Guest option is selected by default, skipping these steps if desired option is 'Guest' select_element(:access_level_dropdown, access_level) unless access_level == 'Guest' end - - def send_invite - click_element :invite_button - Support::WaitForRequests.wait_for_requests - page.refresh - 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 7a7329e6110..9143a25d9ab 100644 --- a/qa/qa/page/component/wiki_page_form.rb +++ b/qa/qa/page/component/wiki_page_form.rb @@ -17,7 +17,10 @@ module QA base.view 'app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue' do element :markdown_editor_form_field - element :editing_mode_button + end + + base.view 'app/assets/javascripts/vue_shared/components/markdown/editor_mode_dropdown.vue' do + element :editing_mode_switcher end base.view 'app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue' do @@ -55,8 +58,9 @@ module QA end def use_new_editor - within_element(:editing_mode_button) do - find('label', text: 'Rich text').click + click_element(:editing_mode_switcher) + within_element(:editing_mode_switcher) do + find('button', text: 'Rich text').click end wait_until(reload: false) do |