Use cuprite to drive Chrome (#60)

headless tests started to fail due to elements not being present in time
or not being found period.  CBA to fix so just switch to this other
driver for now.

Reviewed-on: #60
This commit is contained in:
Andrew Tomaka 2025-06-06 00:00:54 -04:00
parent 3eb819ab68
commit 8ed6eabdb2
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