diff options
Diffstat (limited to 'qa/qa/page/component/groups_filter.rb')
-rw-r--r-- | qa/qa/page/component/groups_filter.rb | 24 |
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 |