Use cuprite to drive Chrome #60

Merged
atomaka merged 3 commits from fix-system-test into main 2025-06-06 00:00:55 -04:00
3 changed files with 14 additions and 14 deletions

View file

@ -61,7 +61,7 @@ end
group :test do
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
gem "capybara"
gem "selenium-webdriver"
gem "cuprite"
end
gem "tailwindcss-rails", "~> 3.3.1"

View file

@ -125,6 +125,9 @@ GEM
concurrent-ruby (1.3.5)
connection_pool (2.5.0)
crass (1.0.6)
cuprite (0.17)
capybara (~> 3.0)
ferrum (~> 0.17.0)
date (3.4.1)
debug (1.10.0)
irb (~> 1.10)
@ -133,6 +136,12 @@ GEM
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
ferrum (0.17.1)
addressable (~> 2.5)
base64 (~> 0.2)
concurrent-ruby (~> 1.1)
webrick (~> 1.7)
websocket-driver (~> 0.7)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
@ -226,7 +235,6 @@ GEM
regexp_parser (2.10.0)
reline (0.6.0)
io-console (~> 0.5)
rexml (3.4.0)
rubocop (1.71.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
@ -256,14 +264,7 @@ GEM
rubocop-performance
rubocop-rails
ruby-progressbar (1.13.0)
rubyzip (2.4.1)
securerandom (0.4.1)
selenium-webdriver (4.28.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
solid_cable (3.0.7)
actioncable (>= 7.2)
activejob (>= 7.2)
@ -309,7 +310,7 @@ GEM
activemodel (>= 6.0.0)
bindex (>= 0.4.0)
railties (>= 6.0.0)
websocket (1.2.11)
webrick (1.9.1)
websocket-driver (0.7.7)
base64
websocket-extensions (>= 0.1.0)
@ -329,6 +330,7 @@ DEPENDENCIES
bootsnap
brakeman
capybara
cuprite
debug
importmap-rails
jbuilder
@ -336,7 +338,6 @@ DEPENDENCIES
puma (>= 5.0)
rails!
rubocop-rails-omakase
selenium-webdriver
solid_cable
solid_cache
solid_queue

View file

@ -1,9 +1,8 @@
require "test_helper"
require "capybara/cuprite"
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
driven_by :selenium,
using: ENV["VISIBLE_SYSTEM_TESTS"].present? ? :chrome : :headless_chrome,
screen_size: [ 1400, 1400 ]
driven_by :cuprite, options: { headless: ENV["VISIBLE_SYSTEM_TESTS"].blank? }
def login(email, password = "secret")
visit new_session_url