Skip to content

Commit b7a8896

Browse files
justin808claude
andcommitted
Update react_on_rails and fix headless Chrome for tests
- Update react_on_rails to latest master (revision b50a74d9) - Fix headless Chrome by using custom :headless_chrome driver Capybara's built-in :selenium_chrome_headless uses old --headless flag Chrome 109+ requires --headless=new for proper headless operation - Renamed driver to avoid conflicts with Capybara's built-in driver 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9107245 commit b7a8896

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

spec/rails_helper.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,15 @@
6868
# https://relishapp.com/rspec/rspec-rails/docs
6969
config.infer_spec_type_from_file_location!
7070

71-
Capybara.default_driver = :selenium_chrome_headless
72-
Capybara.javascript_driver = :selenium_chrome_headless
71+
# Use custom :headless_chrome driver (not Capybara's built-in :selenium_chrome_headless)
72+
# to ensure Chrome 109+ --headless=new flag is used
73+
Capybara.default_driver = :headless_chrome
74+
Capybara.javascript_driver = :headless_chrome
75+
76+
# Also configure system specs (Rails 5.1+) to use our headless driver
77+
config.before(:each, type: :system) do
78+
driven_by :headless_chrome
79+
end
7380

7481
puts "=" * 80
7582
puts "Capybara using driver: #{Capybara.javascript_driver}"

spec/support/driver_registration.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ def self.register_selenium_firefox
2828
end
2929

3030
def self.register_selenium_chrome_headless
31-
# Force re-register to ensure our configuration is used
32-
Capybara.drivers.delete(:selenium_chrome_headless)
33-
34-
Capybara.register_driver :selenium_chrome_headless do |app|
31+
# Use a custom driver name to avoid conflicts with Capybara's built-in
32+
# :selenium_chrome_headless which uses the old --headless flag.
33+
# Chrome 109+ requires --headless=new for proper headless operation.
34+
Capybara.register_driver :headless_chrome do |app|
3535
browser_options = ::Selenium::WebDriver::Chrome::Options.new
3636
browser_options.args << "--headless=new"
3737
browser_options.args << "--disable-gpu"
@@ -42,7 +42,7 @@ def self.register_selenium_chrome_headless
4242
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
4343
end
4444

45-
Capybara::Screenshot.register_driver(:selenium_chrome_headless) do |driver, path|
45+
Capybara::Screenshot.register_driver(:headless_chrome) do |driver, path|
4646
driver.browser.save_screenshot(path)
4747
end
4848
end

0 commit comments

Comments
 (0)