docbrown/spec/support/initializers/cuprite.rb
2024-03-06 10:54:49 -05:00

34 lines
826 B
Ruby

require "capybara/cuprite"
REMOTE_CHROME_URL = ENV.fetch("CHROME_URL", nil)
REMOTE_CHROME_HOST, REMOTE_CHROME_PORT =
if REMOTE_CHROME_URL
URI.parse(REMOTE_CHROME_URL).then do |uri|
[uri.host, uri.port]
end
end
remote_chrome =
begin
if REMOTE_CHROME_URL.nil?
false
else
Socket.tcp(REMOTE_CHROME_HOST, REMOTE_CHROME_PORT, connect_timeout: 1).close
true
end
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, SocketError
false
end
remote_options = remote_chrome ? { url: REMOTE_CHROME_URL } : {}
Capybara.register_driver(:better_cuprite) do |app|
Capybara::Cuprite::Driver.new(
app,
window_size: [1200, 800],
browser_options: {},
process_timeout: 30,
inspector: true,
headless: !ENV["HEADLESS"].in?(%w[n 0 no false]), **remote_options
)
end