Skip to content

Commit b7465ae

Browse files
authored
Merge pull request #6198 from solidusio/backport/v4.5/pr-6197
[v4.5] Fix flaky specs
2 parents bd039e4 + bb42724 commit b7465ae

File tree

18 files changed

+34
-48
lines changed

18 files changed

+34
-48
lines changed

admin/spec/spec_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
browser_options.args << '--headless'
5252
browser_options.args << '--disable-gpu'
5353
browser_options.args << '--window-size=1920,1080'
54+
browser_options.args << '--disable-backgrounding-occluded-windows'
5455
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
5556
end
5657
Capybara.register_driver :selenium_chrome_headless_docker_friendly do |app|
@@ -60,6 +61,7 @@
6061
# Sandbox cannot be used inside unprivileged Docker container
6162
browser_options.args << '--no-sandbox'
6263
browser_options.args << '--window-size=1240,1400'
64+
browser_options.args << '--disable-backgrounding-occluded-windows'
6365
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
6466
end
6567
Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym

backend/spec/features/admin/configuration/shipping_methods_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
end
3636

3737
click_on "Create"
38+
expect(page).to have_content("Shipping Method \"bullock cart\" has been successfully created!")
3839
expect(current_path).to eql(spree.edit_admin_shipping_method_path(Spree::ShippingMethod.last))
3940

4041
visit spree.new_admin_shipping_method_path

backend/spec/features/admin/orders/customer_returns_spec.rb

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,14 @@ def expect_order_state_label_to_eq(text)
3333
end
3434
end
3535

36-
it 'disables the button at submit', :js do
37-
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
38-
39-
create_customer_return('receive')
40-
41-
expect(page).to have_button("Create", disabled: true)
36+
it 'disables the button at submit' do
37+
expect(page).to have_css('input[type="submit"][data-disable-with="Create"]')
4238
end
4339

4440
context 'when creating a return with state "In Transit" and then marking it as "Received"' do
4541
it 'disables the "Receive" button at submit', :js do
4642
create_customer_return('in_transit')
47-
48-
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
49-
50-
within('[data-hook="rejected_return_items"] tbody tr:nth-child(1)') do
51-
click_button('Receive')
52-
53-
expect(page).to have_button("Receive", disabled: true, wait: 5)
54-
end
43+
expect(page).to have_css('input[type="submit"][data-disable-with="Receive"]')
5544
end
5645

5746
it 'marks the order as returned', :js do

backend/spec/features/admin/orders/new_order_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,15 @@
4747

4848
click_on "Payments"
4949
click_on "Update"
50+
expect(page).to have_content("Payment has been successfully created!")
5051

5152
expect(current_path).to eql(spree.admin_order_payments_path(Spree::Order.last))
5253

5354
click_on "Confirm"
5455
click_on "Complete Order"
5556

57+
expect(page).to have_content("Order completed")
58+
5659
expect(current_path).to eql(spree.edit_admin_order_path(Spree::Order.last))
5760

5861
click_on "Payments"

backend/spec/features/admin/orders/return_payment_state_spec.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,9 @@ def create_customer_return
6767
)
6868
end
6969

70-
it 'disables the "Create Reimbursement" button at submit', :js do
70+
it 'disables the "Create Reimbursement" button at submit' do
7171
create_customer_return
7272

73-
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
74-
75-
# Create reimbursement
76-
click_on 'Create reimbursement'
77-
78-
expect(page).to have_button("Create reimbursement", disabled: true)
73+
expect(page).to have_css("input[type='submit'][data-disable-with='Create reimbursement']")
7974
end
8075
end

backend/spec/features/admin/products/edit/images_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@
9898
end
9999

100100
click_button "Update"
101+
expect(page).to have_content("Image has been successfully created!")
101102
invalidate_attachment(Spree::Image.first.attachment)
102103
visit current_path
103104
expect(page).to have_xpath("//img[contains(@src, 'assets/noimage/mini')]")

backend/spec/spec_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
browser_options.args << '--headless'
5959
browser_options.args << '--disable-gpu'
6060
browser_options.args << '--window-size=1920,1080'
61+
browser_options.args << '--disable-backgrounding-occluded-windows'
6162
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
6263
end
6364
Capybara.register_driver :selenium_chrome_headless_docker_friendly do |app|
@@ -67,6 +68,7 @@
6768
# Sandbox cannot be used inside unprivileged Docker container
6869
browser_options.args << '--no-sandbox'
6970
browser_options.args << '--window-size=1240,1400'
71+
browser_options.args << '--disable-backgrounding-occluded-windows'
7072
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
7173
end
7274

legacy_promotions/spec/features/backend/promotion_adjustments_spec.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,8 @@
167167
expect(promotion.actions.first).to be_a(Spree::Promotion::Actions::FreeShipping)
168168
end
169169

170-
it "disables the button at submit", :js do
171-
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
172-
fill_in "Name", with: "SAVE SAVE SAVE"
173-
choose "Apply to all orders"
174-
click_button "Create"
175-
176-
expect(page).to have_button("Create", disabled: true)
170+
it "disables the button at submit" do
171+
expect(page).to have_css("input[type='submit'][data-disable-with='Create']")
177172
end
178173

179174
it "should allow an admin to create an automatic promotion" do

legacy_promotions/spec/features/backend/promotions/option_value_rule_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
require 'spec_helper'
3+
require "rails_helper"
44

55
RSpec.feature 'Promotion with option value rule' do
66
stub_authorization!

legacy_promotions/spec/features/backend/promotions/product_rule_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
require 'spec_helper'
3+
require "rails_helper"
44

55
RSpec.feature 'Promotion with product rule', js: true do
66
stub_authorization!

0 commit comments

Comments
 (0)