Skip to content

Commit 69e1eb0

Browse files
committed
Use core's capybara driver configuration
Solidus core has migrated to using Firefox for headless testing, which seems to be more stable than Chrome, and uses minimal configuration. See solidusio/solidus#6230 Because older versions of Solidus might not have the new `capybara_driver.rb` file, we still include the legacy code in a `rescue` block.
1 parent 4f78ea1 commit 69e1eb0

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed
Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,32 @@
11
# frozen_string_literal: true
22

3-
# Allow to override the initial windows size
4-
CAPYBARA_WINDOW_SIZE = ENV.fetch("CAPYBARA_WINDOW_SIZE", "1920x1080").split("x", 2).map(&:to_i)
5-
CAPYBARA_WINDOW_WIDTH = CAPYBARA_WINDOW_SIZE[0]
6-
CAPYBARA_WINDOW_HEIGHT = CAPYBARA_WINDOW_SIZE[1]
3+
begin
4+
require "spree/testing_support/capybara_driver"
5+
rescue LoadError
6+
# Allow to override the initial windows size
7+
CAPYBARA_WINDOW_SIZE = ENV.fetch("CAPYBARA_WINDOW_SIZE", "1920x1080").split("x", 2).map(&:to_i)
8+
CAPYBARA_WINDOW_WIDTH = CAPYBARA_WINDOW_SIZE[0]
9+
CAPYBARA_WINDOW_HEIGHT = CAPYBARA_WINDOW_SIZE[1]
710

8-
Capybara.javascript_driver = ENV.fetch("CAPYBARA_JAVASCRIPT_DRIVER", "solidus_chrome_headless").to_sym
9-
Capybara.default_max_wait_time = 10
10-
Capybara.server = :puma, {Silent: true} # A fix for rspec/rspec-rails#1897
11+
Capybara.javascript_driver = ENV.fetch("CAPYBARA_JAVASCRIPT_DRIVER", "solidus_chrome_headless").to_sym
12+
Capybara.default_max_wait_time = 10
13+
Capybara.server = :puma, {Silent: true} # A fix for rspec/rspec-rails#1897
1114

12-
Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
13-
Capybara.register_driver :solidus_chrome_headless do |app|
14-
original_driver.call(app).tap do |driver|
15-
driver.resize_window_to(
16-
driver.current_window_handle, CAPYBARA_WINDOW_WIDTH, CAPYBARA_WINDOW_HEIGHT
17-
)
15+
Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
16+
Capybara.register_driver :solidus_chrome_headless do |app|
17+
original_driver.call(app).tap do |driver|
18+
driver.resize_window_to(
19+
driver.current_window_handle, CAPYBARA_WINDOW_WIDTH, CAPYBARA_WINDOW_HEIGHT
20+
)
21+
end
1822
end
1923
end
20-
end
2124

22-
require "capybara-screenshot/rspec"
25+
require "capybara-screenshot/rspec"
2326

24-
Capybara::Screenshot.register_driver(:solidus_chrome_headless) do |driver, path|
25-
driver.browser.save_screenshot(path)
27+
Capybara::Screenshot.register_driver(:solidus_chrome_headless) do |driver, path|
28+
driver.browser.save_screenshot(path)
29+
end
2630
end
2731

2832
require "spree/testing_support/capybara_ext"

0 commit comments

Comments
 (0)