Merge pull request #13709 from openfoodfoundation/dependabot/bundler/cuprite-0.17

Bump cuprite from 0.15 to 0.17
This commit is contained in:
Maikel
2026-02-24 12:05:17 +11:00
committed by GitHub
7 changed files with 33 additions and 77 deletions

View File

@@ -267,9 +267,9 @@ GEM
css_parser (1.21.1)
addressable
csv (3.3.5)
cuprite (0.15)
cuprite (0.17)
capybara (~> 3.0)
ferrum (~> 0.14.0)
ferrum (~> 0.17.0)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.2)
@@ -334,11 +334,12 @@ GEM
faraday (>= 1, < 3)
faraday-net_http (3.4.2)
net-http (~> 0.5)
ferrum (0.14)
ferrum (0.17.1)
addressable (~> 2.5)
base64 (~> 0.2)
concurrent-ruby (~> 1.1)
webrick (~> 1.7)
websocket-driver (>= 0.6, < 0.8)
websocket-driver (~> 0.7)
ffaker (2.25.0)
ffi (1.17.3)
flipper (1.3.6)
@@ -529,7 +530,7 @@ GEM
net-protocol
newrelic_rpm (9.24.0)
nio4r (2.7.5)
nokogiri (1.19.0)
nokogiri (1.19.1)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri-html5-inference (0.3.0)
@@ -602,7 +603,7 @@ GEM
psych (5.3.1)
date
stringio
public_suffix (7.0.0)
public_suffix (7.0.2)
puffing-billy (4.0.2)
addressable (~> 2.5)
em-http-request (~> 1.1, >= 1.1.0)
@@ -959,7 +960,7 @@ GEM
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.9.2)
websocket-driver (0.7.7)
websocket-driver (0.8.0)
base64
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)

View File

@@ -29,7 +29,7 @@
.sixteen.columns.alpha
.eight.columns.alpha
= f.field_container :variant_unit do
= f.label :variant_unit, t(".units")
= f.label :variant_unit_with_scale, t(".units")
%span.required *
= f.select 'variant_unit', [],
{ include_blank: true },

View File

@@ -1,45 +0,0 @@
# 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
# Close the dropdown
page.find("body").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,8 +1,6 @@
# frozen_string_literal: true
module WebHelper
include TomselectHelper
def have_input(name, opts = {})
selector = "[name='#{name}']"
selector += "[placeholder='#{opts[:placeholder]}']" if opts.key? :placeholder

View File

@@ -1,39 +1,41 @@
# 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 = 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',
tomselect_wrapper.find(:css, ".ts-dropdown.multi .ts-dropdown-content .option",
text: value).click
# Close the dropdown
page.find("body").click
end
def tomselect_search_and_select(value, options)
tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper")
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
tomselect_wrapper.find(".ts-dropdown input.dropdown-input").send_keys(value)
tomselect_wrapper.find(".ts-dropdown .ts-dropdown-content .option.active", text: value).click
end
def tomselect_select(value, options)
tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper")
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
tomselect_wrapper.find(".ts-dropdown .ts-dropdown-content .option", text: value).click
end
def select_tom_select(value, from:)
container = find(:id, from)
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
within(container) do
find('.ts-control').send_keys(value)
end
raise "Please pass the block for expectations" unless block_given?
find('.ts-dropdown .ts-dropdown-content .option', text: /#{Regexp.quote(value)}/i).click
# 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

@@ -100,10 +100,10 @@ RSpec.describe '
end
it "order cycles appear in descending order by close date on orders page" do
tomselect_open('q_order_cycle_id_in').click
expect(find('#q_order_cycle_id_in',
visible: :all)[:innerHTML]).to have_content(/.*Four.*Three.*Two.*Five/m)
open_tomselect_to_validate!(page, 'q_order_cycle_id_in') do
oc_html = find('#q_order_cycle_id_in', visible: :all)[:innerHTML]
expect(oc_html).to have_content(/.*Four.*Three.*Two.*Five/m)
end
end
it "filter by multiple order cycles" do

View File

@@ -23,7 +23,7 @@ RSpec.describe 'As an enterprise user, I can manage my products' do
expect(page).to have_content "New Product"
fill_in 'product_name', with: 'Big Bag Of Apples'
tomselect_select supplier.name, from: 'product[supplier_id]'
select_tom_select 'Weight (g)', from: 'product_variant_unit_field'
tomselect_search_and_select 'Weight (g)', from: "product_variant_unit_with_scale"
fill_in 'product_unit_value', with: '100'
fill_in 'product_price', with: '10.00'
# TODO dropdowns below are still using select2: