summaryrefslogtreecommitdiff
path: root/qa/qa/page/component/groups_filter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/component/groups_filter.rb')
-rw-r--r--qa/qa/page/component/groups_filter.rb24
1 files changed, 14 insertions, 10 deletions
diff --git a/qa/qa/page/component/groups_filter.rb b/qa/qa/page/component/groups_filter.rb
index e647d368f0f..cc50bb439b4 100644
--- a/qa/qa/page/component/groups_filter.rb
+++ b/qa/qa/page/component/groups_filter.rb
@@ -6,12 +6,7 @@ module QA
module GroupsFilter
def self.included(base)
base.view 'app/views/shared/groups/_search_form.html.haml' do
- element :groups_filter, 'search_field_tag :filter'
- element :groups_filter_placeholder, 'Search by name'
- end
-
- base.view 'app/views/shared/groups/_empty_state.html.haml' do
- element :groups_empty_state
+ element :groups_filter
end
base.view 'app/assets/javascripts/groups/components/groups.vue' do
@@ -21,13 +16,22 @@ module QA
private
- def filter_by_name(name)
+ def has_filtered_group?(name)
+ # Filter and submit to reload the page and only retrieve the filtered results
+ find_element(:groups_filter).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
wait(reload: false) do
- page.has_css?(element_selector_css(:groups_empty_state)) ||
- page.has_css?(element_selector_css(:groups_list_tree_container))
+ page.has_css?(element_selector_css(:groups_list_tree_container))
end
- fill_in 'Search by name', with: name
+ # If there are no groups we'll know immediately because we filtered the list
+ return false if page.has_text?('No groups or projects matched your search', wait: 0)
+
+ # The name will be present as filter input so we check for a link, not text
+ page.has_link?(name, wait: 0)
end
end
end