From 5af5eb7ecf129c44a8470634c3b237efb95befb0 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Wed, 17 Jan 2024 18:48:17 +0000 Subject: [PATCH] Replaces all with find, within tom_select helper method Moves existing tom select helper methods into separate file --- spec/base_spec_helper.rb | 2 +- spec/support/tom_select_helper.rb | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/spec/base_spec_helper.rb b/spec/base_spec_helper.rb index a5d04a5ce3..9a07aea552 100644 --- a/spec/base_spec_helper.rb +++ b/spec/base_spec_helper.rb @@ -287,7 +287,7 @@ RSpec.configure do |config| config.include OpenFoodNetwork::PerformanceHelper config.include ActiveJob::TestHelper config.include ReportsHelper - config.include TomSelectHelper + config.include TomSelectHelper, type: :system config.include ViewComponent::TestHelpers, type: :component diff --git a/spec/support/tom_select_helper.rb b/spec/support/tom_select_helper.rb index 31d2a32ef5..1ce6ec9ea6 100644 --- a/spec/support/tom_select_helper.rb +++ b/spec/support/tom_select_helper.rb @@ -1,6 +1,25 @@ # 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("[name='#{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("[name='#{options[:from]}']").sibling(".ts-wrapper") + tomselect_wrapper.find(".ts-control").click + tomselect_wrapper.find(:css, '.ts-dropdown input.dropdown-input').set(value) + tomselect_wrapper.find(".ts-control").click + tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click + end + def select_tom_select(value, from:) container = find(:id, from) @@ -8,6 +27,6 @@ module TomSelectHelper find('.ts-control').send_keys(value) end - all('.ts-dropdown .ts-dropdown-content .option', text: /#{Regexp.quote(value)}/i)[0].click + find('.ts-dropdown .ts-dropdown-content .option', text: /#{Regexp.quote(value)}/i).click end end