Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions lib/solidus_dev_support/rspec/capybara.rb
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
# frozen_string_literal: true

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

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

Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
Capybara.register_driver :solidus_chrome_headless do |app|
original_driver.call(app).tap do |driver|
driver.resize_window_to(
driver.current_window_handle, CAPYBARA_WINDOW_WIDTH, CAPYBARA_WINDOW_HEIGHT
)
Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
Capybara.register_driver :solidus_chrome_headless do |app|
original_driver.call(app).tap do |driver|
driver.resize_window_to(
driver.current_window_handle, CAPYBARA_WINDOW_WIDTH, CAPYBARA_WINDOW_HEIGHT
)
end
end
end
end

require "capybara-screenshot/rspec"
require "capybara-screenshot/rspec"

Capybara::Screenshot.register_driver(:solidus_chrome_headless) do |driver, path|
driver.browser.save_screenshot(path)
Capybara::Screenshot.register_driver(:solidus_chrome_headless) do |driver, path|
driver.browser.save_screenshot(path)
end
end

require "spree/testing_support/capybara_ext"