summaryrefslogtreecommitdiff
path: root/spec/support/helpers/features/runners_helpers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/helpers/features/runners_helpers.rb')
-rw-r--r--spec/support/helpers/features/runners_helpers.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/spec/support/helpers/features/runners_helpers.rb b/spec/support/helpers/features/runners_helpers.rb
new file mode 100644
index 00000000000..63fc628358c
--- /dev/null
+++ b/spec/support/helpers/features/runners_helpers.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+module Spec
+ module Support
+ module Helpers
+ module Features
+ module RunnersHelpers
+ def within_runner_row(runner_id)
+ within "[data-testid='runner-row-#{runner_id}']" do
+ yield
+ end
+ end
+
+ def search_bar_selector
+ '[data-testid="runners-filtered-search"]'
+ end
+
+ # The filters must be clicked first to be able to receive events
+ # See: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1493
+ def focus_filtered_search
+ page.within(search_bar_selector) do
+ page.find('.gl-filtered-search-term-token').click
+ end
+ end
+
+ def input_filtered_search_keys(search_term)
+ focus_filtered_search
+
+ page.within(search_bar_selector) do
+ page.find('input').send_keys(search_term)
+ click_on 'Search'
+ end
+
+ wait_for_requests
+ end
+
+ def open_filtered_search_suggestions(filter)
+ focus_filtered_search
+
+ page.within(search_bar_selector) do
+ click_on filter
+ end
+
+ wait_for_requests
+ end
+
+ def input_filtered_search_filter_is_only(filter, value)
+ focus_filtered_search
+
+ page.within(search_bar_selector) do
+ click_on filter
+
+ # For OPERATOR_IS_ONLY, clicking the filter
+ # immediately preselects "=" operator
+
+ page.find('input').send_keys(value)
+ page.find('input').send_keys(:enter)
+
+ click_on 'Search'
+ end
+
+ wait_for_requests
+ end
+ end
+ end
+ end
+ end
+end