Compare commits

...

4 commits

Author SHA1 Message Date
b5e9642b21 Add bundler-audit gem to fix CI
All checks were successful
Ruby CI / test (pull_request) Successful in 23s
Rails 8.1 generates bin/bundler-audit but doesn't include the gem by default.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 00:12:42 -04:00
9f36dbe87d Merge branch 'main' into update-dependencies-20250605 2025-06-06 00:04:26 -04:00
8ed6eabdb2 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
2025-06-06 00:00:54 -04:00
3eb819ab68 Update brakeman to pass CI (#61)
Reviewed-on: #61
2025-06-05 23:58:53 -04:00
3 changed files with 21 additions and 14 deletions

View file

@ -51,6 +51,9 @@ group :development, :test do
# Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/] # Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/]
gem "rubocop-rails-omakase", require: false gem "rubocop-rails-omakase", require: false
# Audit bundle for known vulnerabilities
gem "bundler-audit", require: false
end end
group :development do group :development do
@ -61,7 +64,7 @@ end
group :test do group :test do
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
gem "capybara" gem "capybara"
gem "selenium-webdriver" gem "cuprite"
end end
gem "tailwindcss-rails", "~> 3.3.1" gem "tailwindcss-rails", "~> 3.3.1"

View file

@ -116,6 +116,9 @@ GEM
brakeman (7.0.2) brakeman (7.0.2)
racc racc
builder (3.3.0) builder (3.3.0)
bundler-audit (0.9.2)
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
capybara (3.40.0) capybara (3.40.0)
addressable addressable
matrix matrix
@ -128,6 +131,9 @@ GEM
concurrent-ruby (1.3.5) concurrent-ruby (1.3.5)
connection_pool (2.5.3) connection_pool (2.5.3)
crass (1.0.6) crass (1.0.6)
cuprite (0.17)
capybara (~> 3.0)
ferrum (~> 0.17.0)
date (3.4.1) date (3.4.1)
debug (1.10.0) debug (1.10.0)
irb (~> 1.10) irb (~> 1.10)
@ -137,6 +143,12 @@ GEM
erubi (1.13.1) erubi (1.13.1)
et-orbi (1.2.11) et-orbi (1.2.11)
tzinfo 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) fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11) et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4) raabro (~> 1.4)
@ -233,7 +245,6 @@ GEM
regexp_parser (2.10.0) regexp_parser (2.10.0)
reline (0.6.1) reline (0.6.1)
io-console (~> 0.5) io-console (~> 0.5)
rexml (3.4.1)
rubocop (1.76.0) rubocop (1.76.0)
json (~> 2.3) json (~> 2.3)
language_server-protocol (~> 3.17.0.2) language_server-protocol (~> 3.17.0.2)
@ -263,14 +274,7 @@ GEM
rubocop-performance (>= 1.24) rubocop-performance (>= 1.24)
rubocop-rails (>= 2.30) rubocop-rails (>= 2.30)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
rubyzip (2.4.1)
securerandom (0.4.1) securerandom (0.4.1)
selenium-webdriver (4.33.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.8) solid_cable (3.0.8)
actioncable (>= 7.2) actioncable (>= 7.2)
activejob (>= 7.2) activejob (>= 7.2)
@ -316,7 +320,7 @@ GEM
activemodel (>= 6.0.0) activemodel (>= 6.0.0)
bindex (>= 0.4.0) bindex (>= 0.4.0)
railties (>= 6.0.0) railties (>= 6.0.0)
websocket (1.2.11) webrick (1.9.1)
websocket-driver (0.8.0) websocket-driver (0.8.0)
base64 base64
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
@ -335,7 +339,9 @@ DEPENDENCIES
bcrypt bcrypt
bootsnap bootsnap
brakeman brakeman
bundler-audit
capybara capybara
cuprite
debug debug
importmap-rails importmap-rails
jbuilder jbuilder
@ -343,7 +349,6 @@ DEPENDENCIES
puma (>= 5.0) puma (>= 5.0)
rails! rails!
rubocop-rails-omakase rubocop-rails-omakase
selenium-webdriver
solid_cable solid_cable
solid_cache solid_cache
solid_queue solid_queue

View file

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