test: Fix ProcessTimeoutError when using Docker

- Error details:

Ferrum::ProcessTimeoutError:
  Browser did not produce websocket url within 10 seconds, try to increase `:process_timeout`

- Reference issue: https://github.com/rubycdp/cuprite/issues/180
Этот коммит содержится в:
Mattia Roccoberton
2025-03-16 10:48:10 +01:00
родитель 0913bb6915
Коммит 57e151aa03
2 изменённых файлов: 20 добавлений и 28 удалений

Просмотреть файл

@@ -1,12 +1,28 @@
# frozen_string_literal: true
Capybara.server = :puma
Capybara.default_driver = Capybara.javascript_driver = :cuprite
require 'capybara/cuprite'
Capybara.register_driver(:capybara_cuprite) do |app|
browser_options = {}.tap do |opts|
opts['no-sandbox'] = nil if ENV['DEVEL']
end
Capybara::Cuprite::Driver.new(
app,
window_size: [1600, 1280],
browser_options: browser_options,
process_timeout: 20,
timeout: 20,
inspector: true,
headless: !ENV['CUPRITE_HEADLESS'].in?(%w[n 0 no false])
)
end
# Capybara.server = :puma
Capybara.default_driver = Capybara.javascript_driver = :capybara_cuprite
RSpec.configure do |config|
# Make sure this hook runs before others
config.prepend_before(:each, type: :system) do
# Use JS driver always
driven_by Capybara.javascript_driver
end
end

Просмотреть файл

@@ -1,24 +0,0 @@
# frozen_string_literal: true
require 'capybara/cuprite'
Capybara.register_driver(:cuprite) do |app|
browser_options = {}.tap do |opts|
opts['no-sandbox'] = nil if ENV['CI']
end
Capybara::Cuprite::Driver.new(
app,
window_size: [1600, 1280],
# See additional options for Dockerized environment in the respective section of this article
browser_options: browser_options,
# Increase Chrome startup wait time (required for stable CI builds)
process_timeout: 20,
# The number of seconds we'll wait for a response when communicating with browser. Default is 5
timeout: 20,
# Enable debugging capabilities
inspector: true,
# Allow running Chrome in a headful mode by setting HEADLESS env var to a falsey value
headless: !ENV['CUPRITE_HEADLESS'].in?(%w[n 0 no false])
)
end