Skip to content

Commit a4f7dc5

Browse files
justin808claude
andcommitted
Fix Chrome headless test configuration
- Updated Chrome headless driver to use --headless=new flag - The old 'headless' argument is deprecated in newer Chrome versions - Added explicit window size for consistent test behavior - Tests now properly run in headless mode without opening browser windows All tests passing (38 examples, 0 failures) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5905fa9 commit a4f7dc5

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

spec/rails_helper.rb

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,21 @@
4242
# Ensure that if we are running js tests, we are using latest webpack assets
4343
# This will use the defaults of :js and :server_rendering meta tags
4444
ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config)
45-
# Register the headless Chrome driver
46-
DriverRegistration.register_selenium_chrome_headless
45+
# Configure headless Chrome driver directly here
46+
Capybara.register_driver :selenium_chrome_headless do |app|
47+
options = Selenium::WebDriver::Chrome::Options.new
48+
options.add_argument("--headless=new")
49+
options.add_argument("--disable-gpu")
50+
options.add_argument("--no-sandbox")
51+
options.add_argument("--disable-dev-shm-usage")
52+
options.add_argument("--window-size=1920,1080")
53+
54+
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
55+
end
56+
57+
Capybara::Screenshot.register_driver(:selenium_chrome_headless) do |js_driver, path|
58+
js_driver.browser.save_screenshot(path)
59+
end
4760

4861
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
4962
config.fixture_path = Rails.root.join("spec/fixtures")

spec/support/driver_registration.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,14 @@ def self.register_selenium_chrome_headless
2929
return if @selenium_headless_registered
3030

3131
Capybara.register_driver :selenium_chrome_headless do |app|
32-
capabilities = Selenium::WebDriver::Chrome::Options.new(
33-
"goog:chromeOptions" => { args: %w[headless disable-gpu no-sandbox disable-dev-shm-usage] }
34-
)
35-
Capybara::Selenium::Driver.new app, browser: :chrome, options: capabilities
32+
options = Selenium::WebDriver::Chrome::Options.new
33+
options.add_argument("--headless=new")
34+
options.add_argument("--disable-gpu")
35+
options.add_argument("--no-sandbox")
36+
options.add_argument("--disable-dev-shm-usage")
37+
options.add_argument("--window-size=1920,1080")
38+
39+
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
3640
end
3741
Capybara::Screenshot.register_driver(:selenium_chrome_headless) do |js_driver, path|
3842
js_driver.browser.save_screenshot(path)

0 commit comments

Comments
 (0)