dawarich/spec/support/capybara.rb
2025-05-26 22:18:20 +02:00

43 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require 'capybara/rails'
require 'capybara/rspec'
require 'selenium-webdriver'
# Configure Capybara timeouts to be more lenient in CI environments
Capybara.default_max_wait_time = ENV['CI'] ? 15 : 5
Capybara.server = :puma, { Silent: true }
# For debugging in CI
if ENV['CI']
Capybara.register_driver :selenium_chrome_headless do |app|
browser_options = ::Selenium::WebDriver::Chrome::Options.new
browser_options.add_argument('--headless')
browser_options.add_argument('--no-sandbox')
browser_options.add_argument('--disable-dev-shm-usage')
browser_options.add_argument('--disable-gpu')
browser_options.add_argument('--window-size=1400,1400')
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: browser_options
)
end
end
# Allow for selenium remote driver based on environment variables
Capybara.register_driver :selenium_remote_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
'goog:chromeOptions' => {
'args' => %w[headless no-sandbox disable-dev-shm-usage disable-gpu window-size=1400,1400]
}
)
Capybara::Selenium::Driver.new(
app,
browser: :remote,
url: 'http://chrome:4444/wd/hub',
capabilities: capabilities
)
end