11060: create tomselect helper module

This commit is contained in:
Ahmed Ejaz
2024-04-30 14:40:59 +05:00
committed by Rachel Arnould
parent f07900ca4a
commit b1f20ffc14
2 changed files with 45 additions and 40 deletions

View File

@@ -0,0 +1,43 @@
# frozen_string_literal: true
module TomselectHelper
def tomselect_open(field_name)
page.find("##{field_name}-ts-control").click
end
def tomselect_multiselect(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
tomselect_wrapper.find(:css, '.ts-dropdown.multi .ts-dropdown-content .option',
text: value).click
end
def tomselect_search_and_select(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
# Use send_keys as setting the value directly doesn't trigger the search
tomselect_wrapper.find(:css, '.ts-dropdown input.dropdown-input').send_keys(value)
tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click
end
def tomselect_select(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click
end
def open_tomselect_to_validate!(page, field_name)
tomselect_wrapper = page.find_field(field_name).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click # open the dropdown
raise 'Please pass the block for expectations' unless block_given?
# execute block containing expectations
yield
tomselect_wrapper.find(
'.ts-dropdown .ts-dropdown-content .option.active',
).click # close the dropdown by selecting the already selected value
end
end

View File

@@ -1,6 +1,8 @@
# frozen_string_literal: true
module WebHelper
include TomselectHelper
def have_input(name, opts = {})
selector = "[name='#{name}']"
selector += "[placeholder='#{opts[:placeholder]}']" if opts.key? :placeholder
@@ -86,46 +88,6 @@ module WebHelper
find(:css, ".select2-result-label", text: options[:select_text] || value).click
end
def tomselect_open(field_name)
page.find("##{field_name}-ts-control").click
end
def tomselect_multiselect(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
tomselect_wrapper.find(:css, '.ts-dropdown.multi .ts-dropdown-content .option',
text: value).click
end
def tomselect_search_and_select(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
# Use send_keys as setting the value directly doesn't trigger the search
tomselect_wrapper.find(:css, '.ts-dropdown input.dropdown-input').send_keys(value)
tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click
end
def tomselect_select(value, options)
tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click
tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click
end
def open_tomselect_to_validate!(page, field_name)
tomselect_wrapper = page.find_field(field_name).sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click # open the dropdown
raise 'Please pass the block for expectations' unless block_given?
# execute block containing expectations
yield
tomselect_wrapper.find(
'.ts-dropdown .ts-dropdown-content .option.active',
).click # close the dropdown by selecting the already selected value
end
def request_monitor_finished(controller = nil)
page.evaluate_script("#{angular_scope(controller)}.scope().RequestMonitor.loading == false")
end