Merge pull request #6061 from arku/fix/sleep-removal

Remove sleep calls from select2 helper
This commit is contained in:
Pau Pérez Fabregat
2020-10-13 09:42:25 +02:00
committed by GitHub
13 changed files with 38 additions and 59 deletions

View File

@@ -265,12 +265,12 @@ feature '
it "displays a select box for producers, which filters line items by the selected supplier" do
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
open_select2 "div.select2-container#s2id_supplier_filter"
open_select2 "#s2id_supplier_filter"
expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: "All"
Enterprise.is_primary_producer.map(&:name).each do |sn|
expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: sn
end
close_select2 "#s2id_supplier_filter"
close_select2
select2_select s1.name, from: "supplier_filter"
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"
@@ -303,12 +303,12 @@ feature '
it "displays a select box for distributors, which filters line items by the selected distributor" do
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
open_select2 "div.select2-container#s2id_distributor_filter"
open_select2 "#s2id_distributor_filter"
expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: "All"
Enterprise.is_distributor.map(&:name).each do |dn|
expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: dn
end
close_select2 "#s2id_distributor_filter"
close_select2
select2_select d1.name, from: "distributor_filter"
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"

View File

@@ -37,7 +37,7 @@ describe "States" do
context "creating and editing states" do
it "should allow an admin to edit existing states", js: true do
go_to_states_page
set_select2_field("country", country.id)
select2_select country.name, from: "country"
click_link "new_state_link"
fill_in "state_name", with: "Calgary"
@@ -49,7 +49,7 @@ describe "States" do
it "should allow an admin to create states for non default countries", js: true do
go_to_states_page
set_select2_field "#country", @hungary.id
select2_select @hungary.name, from: "country"
# Just so the change event actually gets triggered in this spec
# It is definitely triggered in the "real world"
page.execute_script("$('#country').trigger('change');")
@@ -65,8 +65,7 @@ describe "States" do
it "should show validation errors", js: true do
go_to_states_page
set_select2_field("country", country.id)
select2_select country.name, from: "country"
click_link "new_state_link"
fill_in "state_name", with: ""

View File

@@ -33,8 +33,8 @@ feature '
fill_in 'enterprise_group_name', with: 'EGEGEG'
fill_in 'enterprise_group_description', with: 'This is a description'
check 'enterprise_group_on_front_page'
targetted_select2_search e1.name, from: '#s2id_enterprise_group_enterprise_ids'
targetted_select2_search e2.name, from: '#s2id_enterprise_group_enterprise_ids'
select2_select e1.name, from: 'enterprise_group_enterprise_ids', search: true
select2_select e2.name, from: 'enterprise_group_enterprise_ids', search: true
click_link 'Contact'
fill_in 'enterprise_group_address_attributes_phone', with: '000'
fill_in 'enterprise_group_address_attributes_address1', with: 'My Street'

View File

@@ -117,7 +117,7 @@ feature '
it "allows adding new managers" do
within 'table.managers' do
targetted_select2_search user3.email, from: '#s2id_ignored'
select2_select user3.email, from: 'ignored', search: true
# user3 has been added and has an unconfirmed email address
expect(page).to have_css "tr#manager-#{user3.id}"

View File

@@ -125,7 +125,7 @@ feature '
expect(page).to have_selector "#payment_methods"
expect(page).to have_selector "#shipping_methods"
multi_select2_select eg1.name, from: 'enterprise_group_ids'
select2_select eg1.name, from: 'enterprise_group_ids'
accept_alert do
click_link "Payment Methods"

View File

@@ -191,7 +191,7 @@ feature '
fill_in 'order_cycle_orders_open_at', with: '2040-11-06 06:00:00'
fill_in 'order_cycle_orders_close_at', with: '2040-11-13 17:00:00'
expect(page).not_to have_select2 'schedule_ids', with_options: [schedule_of_other_managed_distributor.name]
multi_select2_select schedule.name, from: 'schedule_ids'
select2_select schedule.name, from: 'schedule_ids'
click_button 'Add coordinator fee'
select 'Managed distributor fee', from: 'order_cycle_coordinator_fee_0_id'
@@ -246,7 +246,7 @@ feature '
visit edit_admin_order_cycle_path(oc)
expect(page).to have_field 'order_cycle_name', with: oc.name
multi_select2_select schedule.name, from: 'schedule_ids'
select2_select schedule.name, from: 'schedule_ids'
expect(page).not_to have_select2 'schedule_ids', with_options: [schedule_of_other_managed_distributor.name]
click_button 'Save and Next'

View File

@@ -50,7 +50,7 @@ feature '
open_select2('#s2id_order_distributor_id')
expect(page).to have_selector "ul.select2-results li.select2-result.select2-disabled",
text: distributor_disabled.name
close_select2('#s2id_order_distributor_id')
close_select2
# Order cycle selector should be disabled
expect(page).to have_selector "#s2id_order_order_cycle_id.select2-container-disabled"
@@ -64,7 +64,7 @@ feature '
# it suppresses validation errors when setting distribution
expect(page).not_to have_selector '#errorExplanation'
expect(page).to have_content 'ADD PRODUCT'
targetted_select2_search product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
select2_select product.name, from: 'add_variant_id', search: true
find('button.add_variant').click
page.has_selector? "table.index tbody[data-hook='admin_order_form_line_items'] tr" # Wait for JS
expect(page).to have_selector 'td', text: product.name
@@ -80,7 +80,7 @@ feature '
scenario "can add a product to an existing order" do
login_as_admin_and_visit spree.edit_admin_order_path(order)
targetted_select2_search product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
select2_select product.name, from: 'add_variant_id', search: true
find('button.add_variant').click
@@ -146,7 +146,7 @@ feature '
# When I create a new order
login_as user
new_order_with_distribution(distributor, order_cycle)
targetted_select2_search product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
select2_select product.name, from: 'add_variant_id', search: true
find('button.add_variant').click
page.has_selector? "table.index tbody[data-hook='admin_order_form_line_items'] tr" # Wait for JS
click_button 'Update'
@@ -157,8 +157,7 @@ feature '
expect(page).to have_selector '#select-customer'
# And I select that customer's email address and save the order
targetted_select2_search customer.email, from: '#customer_search_override',
dropdown_css: '.select2-drop'
select2_select customer.email, from: 'customer_search_override', search: true
click_button 'Update'
expect(page).to have_selector "h1.js-admin-page-title", text: "Customer Details"
@@ -323,7 +322,7 @@ feature '
new_order_with_distribution(distributor1, order_cycle1)
expect(page).to have_content 'ADD PRODUCT'
targetted_select2_search product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
select2_select product.name, from: 'add_variant_id', search: true
find('button.add_variant').click
page.has_selector? "table.index tbody[data-hook='admin_order_form_line_items'] tr"

View File

@@ -51,8 +51,8 @@ feature '
login_as_admin_and_visit 'admin/orders'
multi_select2_select 'Two', from: 'q_order_cycle_id_in'
multi_select2_select 'Three', from: 'q_order_cycle_id_in'
select2_select 'Two', from: 'q_order_cycle_id_in'
select2_select 'Three', from: 'q_order_cycle_id_in'
page.find('.filter-actions .button.icon-search').click

View File

@@ -168,7 +168,7 @@ feature "Product Import", js: true do
end
expect(page).to have_selector 'div#s2id_import_date_filter'
import_time = carrots.import_date.to_date.to_formatted_s(:long)
import_time = carrots.import_date.to_date.to_formatted_s(:long).gsub(' ', ' ')
select2_select import_time, from: "import_date_filter"
page.find('.button.icon-search').click

View File

@@ -534,7 +534,7 @@ feature 'Subscriptions' do
def add_variant_to_subscription(variant, quantity)
row_count = all("#subscription-line-items .item").length
variant_name = variant.full_name.present? ? "#{variant.name} - #{variant.full_name}" : variant.name
targetted_select2_search variant.name, from: "#s2id_add_variant_id", dropdown_css: ".select2-drop", select_text: variant_name
select2_select variant.name, from: "add_variant_id", search: true, select_text: variant_name
fill_in "add_quantity", with: quantity
click_link "Add"
expect(page).to have_selector("#subscription-line-items .item", count: row_count + 1)

View File

@@ -409,7 +409,7 @@ feature "
# Reproducing a bug, issue #1446
it "shows the overridden price" do
targetted_select2_search product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
select2_select product.name, from: 'add_variant_id', search: true
find('button.add_variant').click
expect(page).to have_selector("table.index tbody tr") # Wait for JS
expect(page).to have_content(product.variants.first.variant_overrides.first.price)

View File

@@ -94,7 +94,7 @@ RSpec::Matchers.define :have_select2 do |id, options = {}|
def with_select2_open(from)
open_select2 from
r = yield
close_select2 from
close_select2
r
end
end

View File

@@ -100,45 +100,26 @@ module WebHelper
end
def select2_select(value, options)
id = options[:from]
options[:from] = "#s2id_#{id}"
targetted_select2(value, options)
end
open_select2("#s2id_#{options[:from]}")
def targetted_select2(value, options)
# find select2 element and click it
find(options[:from]).find('a').click
select_select2_result(value)
end
if options[:search]
page.find(:xpath, '//body')
.find(:css, '.select2-drop-active input.select2-input, .select2-dropdown-open input.select2-input')
.set(value)
end
def select_select2_result(value)
sleep(1)
page.execute_script(%Q{$("div.select2-result-label:contains('#{value}')").mouseup()})
end
# Support having different texts to search for and to click in the select2
# field.
def targetted_select2_search(value, options)
page.execute_script %{$('#{options[:from]}').select2('open')}
page.execute_script "$('#{options[:dropdown_css]} input.select2-input').val('#{value}').trigger('keyup-change');"
select_select2_result(options[:select_text] || value)
end
def multi_select2_select(value, options)
find("#s2id_#{options[:from]}").find('ul li.select2-search-field').click
select_select2_result(value)
page.find(:xpath, '//body')
.find(:css, '.select2-drop-active .select2-result-label', text: options[:select_text] || value)
.click
end
def open_select2(selector)
page.execute_script "jQuery('#{selector}').select2('open');"
page.find(selector).find(:css, '.select2-choice, .select2-search-field').click
end
def close_select2(selector)
page.execute_script "jQuery('#{selector}').select2('close');"
end
def set_select2_field(field, value)
page.execute_script %Q{$('#{field}').select2('val', '#{value}')}
def close_select2
# A click outside the select2 container should close it
page.find(:css, 'body').click
end
def accept_js_alert