e2e 0.4.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 342adef1a62250902049417eea009bda8913b09cbe1647d6296252a95247c63c
4
- data.tar.gz: bebb9795471ba014c145be81a02d134ea79f7516e2937dcc2b6597e6a4e0e5a8
3
+ metadata.gz: '01750782c903882b84a532103617b2babfdfaba271d32aa8f697b5e1987cfc24'
4
+ data.tar.gz: cc1097558f0be49202911ac317cff51401881d5c0b210afd69f169a3c8b8f293
5
5
  SHA512:
6
- metadata.gz: d10e9a9b09628ea51b0b286b72deaf567d625368c5dd63c955c61d6aa47986644f63c5e4b469c18e19242e40d186bd571f15199e7fe943a37452b97494bee78b
7
- data.tar.gz: f64645a7f01ecb1f8ad66bd7b0782b8b111afefcaa92eb021a290695d36d1c217bc47b8073ef380a1aa64cc08ef141a7f2fdf16b744665aceac22a5afcdac628
6
+ metadata.gz: 23ecff51a9f9bc903058568e26f4354604da41208c9368f8c99243843f2f39785681d60d008ba90333c5fd392f8ba50449100fa6ae566144f34607e8bf4af277
7
+ data.tar.gz: 85ae954b8c58ec52686ad33fd4ee5f969c9337b973ac51abd5359c4a63a4e04fbd7cd3fa0cf883b77f7afbd0b726db4074aa885128f1312052a5b2cba7c448ba
data/Appraisals CHANGED
@@ -13,3 +13,7 @@ end
13
13
  appraise "rails-8.0" do
14
14
  gem "rails", "~> 8.0.0"
15
15
  end
16
+
17
+ appraise "rails-8.1" do
18
+ gem "rails", "~> 8.1.0"
19
+ end
data/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.6.0] - 2026-02-13
11
+
12
+ ### Added
13
+
14
+ - DSL wait helpers: `wait_for`, `wait_for_text`, `wait_for_current_path`, and `wait_for_flash`
15
+ - Action helpers with built-in waiting: `click_button_and_wait_for_text`, `click_link_and_wait_for_text`, `click_button_and_wait_for_path`, `click_link_and_wait_for_path`, `click_button_and_wait_for_flash`, `click_link_and_wait_for_flash`
16
+ - Configurable flash selectors via `E2E.config.flash_selectors`
17
+
18
+ ## [0.5.0] - 2026-02-09
19
+
20
+ ### Added
21
+
22
+ - Minitest integration now includes auto-waiting assertions: `assert_text`, `refute_text`, `assert_selector`, `refute_selector`, `assert_current_path`, `refute_current_path`
23
+ - `E2E::Minitest::TestCase` now automatically quits the browser session after the test suite finishes
24
+
10
25
  ## [0.4.2] - 2026-02-07
11
26
 
12
27
  ### Fixed
data/README.md CHANGED
@@ -107,7 +107,8 @@ class UserLoginTest < E2E::Minitest::TestCase
107
107
  fill_in "Password", with: "password"
108
108
  click_button "Sign In"
109
109
 
110
- assert_includes page.body, "Welcome, User!"
110
+ assert_text "Welcome, User!"
111
+ assert_current_path "/dashboard"
111
112
  end
112
113
  end
113
114
  ```
@@ -122,6 +123,8 @@ Set the `HEADLESS` environment variable to `false`:
122
123
 
123
124
  ```bash
124
125
  HEADLESS=false bundle exec rspec spec/e2e
126
+ # or for minitest
127
+ HEADLESS=false ruby test/e2e/login_test.rb
125
128
  ```
126
129
 
127
130
  ### Pausing for Debugging
@@ -142,7 +145,7 @@ Alternatively, you can just use `sleep(10)` if you want the browser to stay open
142
145
 
143
146
  ### Automatic Screenshots
144
147
 
145
- If a test fails in RSpec, a screenshot is automatically saved to `tmp/screenshots/` for quick investigation.
148
+ If a test fails, a screenshot is automatically saved to `tmp/screenshots/` for quick investigation.
146
149
 
147
150
  ### API Reference
148
151
 
@@ -175,7 +178,7 @@ all("li") # Returns Array<E2E::Element>
175
178
  find("button", text: "Save") # Filter by text
176
179
  ```
177
180
 
178
- #### Assertions & Matchers
181
+ #### RSpec Matchers
179
182
 
180
183
  All text and path matchers **automatically wait** for the expected condition to be met (up to `wait_timeout` seconds), making your tests resilient to page transitions and async rendering.
181
184
 
@@ -207,6 +210,26 @@ expect(find("button")).to be_disabled
207
210
  expect(find("input")).to be_enabled
208
211
  ```
209
212
 
213
+ #### Minitest Assertions
214
+
215
+ These assertions mimic the behavior of RSpec matchers, including **auto-waiting**.
216
+
217
+ ```ruby
218
+ # Check for content (auto-waiting)
219
+ assert_text "Welcome"
220
+ refute_text "Error"
221
+ assert_text /welcome/i
222
+
223
+ # Check for specific elements (auto-waiting)
224
+ assert_selector ".user-profile"
225
+ refute_selector "#loading-spinner"
226
+
227
+ # Check current path (auto-waiting)
228
+ assert_current_path "/dashboard"
229
+ assert_current_path /\/users\/\d+/
230
+ refute_current_path "/login"
231
+ ```
232
+
210
233
  #### Assertions & Data
211
234
 
212
235
  ```ruby
@@ -235,6 +258,22 @@ E2E.wait_until(timeout: 10) do
235
258
  end
236
259
  ```
237
260
 
261
+ Or use built-in DSL helpers that raise clear errors on timeout:
262
+
263
+ ```ruby
264
+ wait_for { SomeModel.count > 0 }
265
+ wait_for_text("Saved")
266
+ wait_for_current_path("/dashboard")
267
+ wait_for_flash("Profile updated", type: :notice)
268
+
269
+ click_button_and_wait_for_text("Save", "Saved")
270
+ click_link_and_wait_for_text("Next", /done/i)
271
+ click_button_and_wait_for_path("Submit", "/dashboard")
272
+ click_link_and_wait_for_path("Continue", /checkout/)
273
+ click_button_and_wait_for_flash("Save", "Updated", type: :notice)
274
+ click_link_and_wait_for_flash("Delete", /failed/i, type: :alert)
275
+ ```
276
+
238
277
  ### 🔓 Native Access (The Escape Hatch)
239
278
 
240
279
  We believe you shouldn't be limited by the wrapper. You can access the underlying `Playwright::Page` object at any time using `.native`.
@@ -295,6 +334,11 @@ E2E.configure do |config|
295
334
  config.headless = ENV.fetch("HEADLESS", "true") == "true"
296
335
  config.app = Rails.application # Automatic Rack booting
297
336
  config.wait_timeout = 5 # Seconds to wait in auto-waiting matchers (default: 5)
337
+ config.flash_selectors = {
338
+ any: "[role='alert'], [role='status'], .flash",
339
+ notice: "[role='status'], .flash.notice",
340
+ alert: "[role='alert'], .flash.alert"
341
+ }
298
342
  end
299
343
  ```
300
344
 
data/Rakefile CHANGED
@@ -2,11 +2,18 @@
2
2
 
3
3
  require "bundler/gem_tasks"
4
4
  require "rspec/core/rake_task"
5
+ require "rake/testtask"
6
+ require "rubocop/rake_task"
5
7
 
6
8
  RSpec::Core::RakeTask.new(:spec)
7
9
 
8
- require "rubocop/rake_task"
10
+ Rake::TestTask.new(:test) do |t|
11
+ t.libs << "lib"
12
+ t.libs << "spec"
13
+ t.test_files = FileList["spec/**/*_test.rb"]
14
+ t.verbose = true
15
+ end
9
16
 
10
17
  RuboCop::RakeTask.new
11
18
 
12
- task default: %i[spec rubocop]
19
+ task default: %i[spec test rubocop]
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- e2e (0.4.2)
4
+ e2e (0.6.0)
5
5
  playwright-ruby-client (>= 1.40.0)
6
6
  rack
7
7
  rackup
@@ -105,13 +105,14 @@ GEM
105
105
  i18n (1.14.8)
106
106
  concurrent-ruby (~> 1.0)
107
107
  io-console (0.8.2)
108
- irb (1.16.0)
108
+ irb (1.17.0)
109
109
  pp (>= 0.6.0)
110
+ prism (>= 1.3.0)
110
111
  rdoc (>= 4.0.0)
111
112
  reline (>= 0.4.2)
112
113
  json (2.18.1)
113
114
  language_server-protocol (3.17.0.5)
114
- lefthook (2.1.0)
115
+ lefthook (2.1.1)
115
116
  lint_roller (1.1.0)
116
117
  logger (1.7.0)
117
118
  loofah (2.25.0)
@@ -211,7 +212,7 @@ GEM
211
212
  zeitwerk (~> 2.5)
212
213
  rainbow (3.1.1)
213
214
  rake (13.3.1)
214
- rdoc (7.1.0)
215
+ rdoc (7.2.0)
215
216
  erb
216
217
  psych (>= 4.0.0)
217
218
  tsort
@@ -231,7 +232,7 @@ GEM
231
232
  diff-lcs (>= 1.2.0, < 2.0)
232
233
  rspec-support (~> 3.13.0)
233
234
  rspec-support (3.13.7)
234
- rubocop (1.82.1)
235
+ rubocop (1.84.2)
235
236
  json (~> 2.3)
236
237
  language_server-protocol (~> 3.17.0.2)
237
238
  lint_roller (~> 1.1.0)
@@ -239,7 +240,7 @@ GEM
239
240
  parser (>= 3.3.0.2)
240
241
  rainbow (>= 2.2.2, < 4.0)
241
242
  regexp_parser (>= 2.9.3, < 3.0)
242
- rubocop-ast (>= 1.48.0, < 2.0)
243
+ rubocop-ast (>= 1.49.0, < 2.0)
243
244
  ruby-progressbar (~> 1.7)
244
245
  unicode-display_width (>= 2.4.0, < 4.0)
245
246
  rubocop-ast (1.49.0)
@@ -260,10 +261,10 @@ GEM
260
261
  simplecov_json_formatter (~> 0.1)
261
262
  simplecov-html (0.13.2)
262
263
  simplecov_json_formatter (0.1.4)
263
- standard (1.53.0)
264
+ standard (1.54.0)
264
265
  language_server-protocol (~> 3.17.0.2)
265
266
  lint_roller (~> 1.0)
266
- rubocop (~> 1.82.0)
267
+ rubocop (~> 1.84.0)
267
268
  standard-custom (~> 1.0.0)
268
269
  standard-performance (~> 1.8)
269
270
  standard-custom (1.0.2)
@@ -303,6 +304,7 @@ DEPENDENCIES
303
304
  e2e!
304
305
  irb
305
306
  lefthook
307
+ minitest
306
308
  rails (~> 7.0.0)
307
309
  rake (~> 13.0)
308
310
  rspec (~> 3.0)
@@ -335,16 +337,16 @@ CHECKSUMS
335
337
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
336
338
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
337
339
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
338
- e2e (0.4.2)
340
+ e2e (0.6.0)
339
341
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
340
342
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
341
343
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
342
344
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
343
345
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
344
- irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
346
+ irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
345
347
  json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
346
348
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
347
- lefthook (2.1.0) sha256=a100dc90139806e62b9aa40cf32e9edf34f6cff10c8b55ebd14a1b0add4b86bf
349
+ lefthook (2.1.1) sha256=1b4ce49fbadb3f6584c07daaa9164e560e27bb5aba18446bb9de2378fcf3f5b6
348
350
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
349
351
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
350
352
  loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
@@ -386,7 +388,7 @@ CHECKSUMS
386
388
  railties (7.0.10) sha256=d52a8b7a61ad941121a15a6596b2150e05c70b199c3afc9e9b73e63b3b1a57a7
387
389
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
388
390
  rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
389
- rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
391
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
390
392
  regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
391
393
  reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
392
394
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
@@ -394,7 +396,7 @@ CHECKSUMS
394
396
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
395
397
  rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
396
398
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
397
- rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
399
+ rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f
398
400
  rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
399
401
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
400
402
  rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
@@ -403,7 +405,7 @@ CHECKSUMS
403
405
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
404
406
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
405
407
  simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
406
- standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
408
+ standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
407
409
  standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
408
410
  standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
409
411
  stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- e2e (0.4.2)
4
+ e2e (0.6.0)
5
5
  playwright-ruby-client (>= 1.40.0)
6
6
  rack
7
7
  rackup
@@ -113,13 +113,14 @@ GEM
113
113
  i18n (1.14.8)
114
114
  concurrent-ruby (~> 1.0)
115
115
  io-console (0.8.2)
116
- irb (1.16.0)
116
+ irb (1.17.0)
117
117
  pp (>= 0.6.0)
118
+ prism (>= 1.3.0)
118
119
  rdoc (>= 4.0.0)
119
120
  reline (>= 0.4.2)
120
121
  json (2.18.1)
121
122
  language_server-protocol (3.17.0.5)
122
- lefthook (2.1.0)
123
+ lefthook (2.1.1)
123
124
  lint_roller (1.1.0)
124
125
  logger (1.7.0)
125
126
  loofah (2.25.0)
@@ -223,7 +224,7 @@ GEM
223
224
  zeitwerk (~> 2.6)
224
225
  rainbow (3.1.1)
225
226
  rake (13.3.1)
226
- rdoc (7.1.0)
227
+ rdoc (7.2.0)
227
228
  erb
228
229
  psych (>= 4.0.0)
229
230
  tsort
@@ -243,7 +244,7 @@ GEM
243
244
  diff-lcs (>= 1.2.0, < 2.0)
244
245
  rspec-support (~> 3.13.0)
245
246
  rspec-support (3.13.7)
246
- rubocop (1.82.1)
247
+ rubocop (1.84.2)
247
248
  json (~> 2.3)
248
249
  language_server-protocol (~> 3.17.0.2)
249
250
  lint_roller (~> 1.1.0)
@@ -251,7 +252,7 @@ GEM
251
252
  parser (>= 3.3.0.2)
252
253
  rainbow (>= 2.2.2, < 4.0)
253
254
  regexp_parser (>= 2.9.3, < 3.0)
254
- rubocop-ast (>= 1.48.0, < 2.0)
255
+ rubocop-ast (>= 1.49.0, < 2.0)
255
256
  ruby-progressbar (~> 1.7)
256
257
  unicode-display_width (>= 2.4.0, < 4.0)
257
258
  rubocop-ast (1.49.0)
@@ -272,10 +273,10 @@ GEM
272
273
  simplecov_json_formatter (~> 0.1)
273
274
  simplecov-html (0.13.2)
274
275
  simplecov_json_formatter (0.1.4)
275
- standard (1.53.0)
276
+ standard (1.54.0)
276
277
  language_server-protocol (~> 3.17.0.2)
277
278
  lint_roller (~> 1.0)
278
- rubocop (~> 1.82.0)
279
+ rubocop (~> 1.84.0)
279
280
  standard-custom (~> 1.0.0)
280
281
  standard-performance (~> 1.8)
281
282
  standard-custom (1.0.2)
@@ -315,6 +316,7 @@ DEPENDENCIES
315
316
  e2e!
316
317
  irb
317
318
  lefthook
319
+ minitest
318
320
  rails (~> 7.1.0)
319
321
  rake (~> 13.0)
320
322
  rspec (~> 3.0)
@@ -349,16 +351,16 @@ CHECKSUMS
349
351
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
350
352
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
351
353
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
352
- e2e (0.4.2)
354
+ e2e (0.6.0)
353
355
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
354
356
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
355
357
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
356
358
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
357
359
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
358
- irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
360
+ irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
359
361
  json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
360
362
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
361
- lefthook (2.1.0) sha256=a100dc90139806e62b9aa40cf32e9edf34f6cff10c8b55ebd14a1b0add4b86bf
363
+ lefthook (2.1.1) sha256=1b4ce49fbadb3f6584c07daaa9164e560e27bb5aba18446bb9de2378fcf3f5b6
362
364
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
363
365
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
364
366
  loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
@@ -400,7 +402,7 @@ CHECKSUMS
400
402
  railties (7.1.6) sha256=2a10e97f2eaca66d11f0fef4b1f4d826e6ee28d4cf01ff16624420dd45e7de1c
401
403
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
402
404
  rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
403
- rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
405
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
404
406
  regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
405
407
  reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
406
408
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
@@ -408,7 +410,7 @@ CHECKSUMS
408
410
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
409
411
  rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
410
412
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
411
- rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
413
+ rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f
412
414
  rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
413
415
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
414
416
  rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
@@ -417,7 +419,7 @@ CHECKSUMS
417
419
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
418
420
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
419
421
  simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
420
- standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
422
+ standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
421
423
  standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
422
424
  standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
423
425
  stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- e2e (0.4.2)
4
+ e2e (0.6.0)
5
5
  playwright-ruby-client (>= 1.40.0)
6
6
  rack
7
7
  rackup
@@ -107,13 +107,14 @@ GEM
107
107
  i18n (1.14.8)
108
108
  concurrent-ruby (~> 1.0)
109
109
  io-console (0.8.2)
110
- irb (1.16.0)
110
+ irb (1.17.0)
111
111
  pp (>= 0.6.0)
112
+ prism (>= 1.3.0)
112
113
  rdoc (>= 4.0.0)
113
114
  reline (>= 0.4.2)
114
115
  json (2.18.1)
115
116
  language_server-protocol (3.17.0.5)
116
- lefthook (2.1.0)
117
+ lefthook (2.1.1)
117
118
  lint_roller (1.1.0)
118
119
  logger (1.7.0)
119
120
  loofah (2.25.0)
@@ -216,7 +217,7 @@ GEM
216
217
  zeitwerk (~> 2.6)
217
218
  rainbow (3.1.1)
218
219
  rake (13.3.1)
219
- rdoc (7.1.0)
220
+ rdoc (7.2.0)
220
221
  erb
221
222
  psych (>= 4.0.0)
222
223
  tsort
@@ -236,7 +237,7 @@ GEM
236
237
  diff-lcs (>= 1.2.0, < 2.0)
237
238
  rspec-support (~> 3.13.0)
238
239
  rspec-support (3.13.7)
239
- rubocop (1.82.1)
240
+ rubocop (1.84.2)
240
241
  json (~> 2.3)
241
242
  language_server-protocol (~> 3.17.0.2)
242
243
  lint_roller (~> 1.1.0)
@@ -244,7 +245,7 @@ GEM
244
245
  parser (>= 3.3.0.2)
245
246
  rainbow (>= 2.2.2, < 4.0)
246
247
  regexp_parser (>= 2.9.3, < 3.0)
247
- rubocop-ast (>= 1.48.0, < 2.0)
248
+ rubocop-ast (>= 1.49.0, < 2.0)
248
249
  ruby-progressbar (~> 1.7)
249
250
  unicode-display_width (>= 2.4.0, < 4.0)
250
251
  rubocop-ast (1.49.0)
@@ -265,10 +266,10 @@ GEM
265
266
  simplecov_json_formatter (~> 0.1)
266
267
  simplecov-html (0.13.2)
267
268
  simplecov_json_formatter (0.1.4)
268
- standard (1.53.0)
269
+ standard (1.54.0)
269
270
  language_server-protocol (~> 3.17.0.2)
270
271
  lint_roller (~> 1.0)
271
- rubocop (~> 1.82.0)
272
+ rubocop (~> 1.84.0)
272
273
  standard-custom (~> 1.0.0)
273
274
  standard-performance (~> 1.8)
274
275
  standard-custom (1.0.2)
@@ -309,6 +310,7 @@ DEPENDENCIES
309
310
  e2e!
310
311
  irb
311
312
  lefthook
313
+ minitest
312
314
  rails (~> 7.2.0)
313
315
  rake (~> 13.0)
314
316
  rspec (~> 3.0)
@@ -343,16 +345,16 @@ CHECKSUMS
343
345
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
344
346
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
345
347
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
346
- e2e (0.4.2)
348
+ e2e (0.6.0)
347
349
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
348
350
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
349
351
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
350
352
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
351
353
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
352
- irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
354
+ irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
353
355
  json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
354
356
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
355
- lefthook (2.1.0) sha256=a100dc90139806e62b9aa40cf32e9edf34f6cff10c8b55ebd14a1b0add4b86bf
357
+ lefthook (2.1.1) sha256=1b4ce49fbadb3f6584c07daaa9164e560e27bb5aba18446bb9de2378fcf3f5b6
356
358
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
357
359
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
358
360
  loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
@@ -393,7 +395,7 @@ CHECKSUMS
393
395
  railties (7.2.3) sha256=6eb010a6bfe6f223e783f739ddfcbdb5b88b1f3a87f7739f0a0685e466250422
394
396
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
395
397
  rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
396
- rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
398
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
397
399
  regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
398
400
  reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
399
401
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
@@ -401,7 +403,7 @@ CHECKSUMS
401
403
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
402
404
  rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
403
405
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
404
- rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
406
+ rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f
405
407
  rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
406
408
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
407
409
  rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
@@ -410,7 +412,7 @@ CHECKSUMS
410
412
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
411
413
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
412
414
  simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
413
- standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
415
+ standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
414
416
  standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
415
417
  standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
416
418
  stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- e2e (0.4.2)
4
+ e2e (0.6.0)
5
5
  playwright-ruby-client (>= 1.40.0)
6
6
  rack
7
7
  rackup
@@ -104,13 +104,14 @@ GEM
104
104
  i18n (1.14.8)
105
105
  concurrent-ruby (~> 1.0)
106
106
  io-console (0.8.2)
107
- irb (1.16.0)
107
+ irb (1.17.0)
108
108
  pp (>= 0.6.0)
109
+ prism (>= 1.3.0)
109
110
  rdoc (>= 4.0.0)
110
111
  reline (>= 0.4.2)
111
112
  json (2.18.1)
112
113
  language_server-protocol (3.17.0.5)
113
- lefthook (2.1.0)
114
+ lefthook (2.1.1)
114
115
  lint_roller (1.1.0)
115
116
  logger (1.7.0)
116
117
  loofah (2.25.0)
@@ -212,7 +213,7 @@ GEM
212
213
  zeitwerk (~> 2.6)
213
214
  rainbow (3.1.1)
214
215
  rake (13.3.1)
215
- rdoc (7.1.0)
216
+ rdoc (7.2.0)
216
217
  erb
217
218
  psych (>= 4.0.0)
218
219
  tsort
@@ -232,7 +233,7 @@ GEM
232
233
  diff-lcs (>= 1.2.0, < 2.0)
233
234
  rspec-support (~> 3.13.0)
234
235
  rspec-support (3.13.7)
235
- rubocop (1.82.1)
236
+ rubocop (1.84.2)
236
237
  json (~> 2.3)
237
238
  language_server-protocol (~> 3.17.0.2)
238
239
  lint_roller (~> 1.1.0)
@@ -240,7 +241,7 @@ GEM
240
241
  parser (>= 3.3.0.2)
241
242
  rainbow (>= 2.2.2, < 4.0)
242
243
  regexp_parser (>= 2.9.3, < 3.0)
243
- rubocop-ast (>= 1.48.0, < 2.0)
244
+ rubocop-ast (>= 1.49.0, < 2.0)
244
245
  ruby-progressbar (~> 1.7)
245
246
  unicode-display_width (>= 2.4.0, < 4.0)
246
247
  rubocop-ast (1.49.0)
@@ -261,10 +262,10 @@ GEM
261
262
  simplecov_json_formatter (~> 0.1)
262
263
  simplecov-html (0.13.2)
263
264
  simplecov_json_formatter (0.1.4)
264
- standard (1.53.0)
265
+ standard (1.54.0)
265
266
  language_server-protocol (~> 3.17.0.2)
266
267
  lint_roller (~> 1.0)
267
- rubocop (~> 1.82.0)
268
+ rubocop (~> 1.84.0)
268
269
  standard-custom (~> 1.0.0)
269
270
  standard-performance (~> 1.8)
270
271
  standard-custom (1.0.2)
@@ -306,6 +307,7 @@ DEPENDENCIES
306
307
  e2e!
307
308
  irb
308
309
  lefthook
310
+ minitest
309
311
  rails (~> 8.0.0)
310
312
  rake (~> 13.0)
311
313
  rspec (~> 3.0)
@@ -339,16 +341,16 @@ CHECKSUMS
339
341
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
340
342
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
341
343
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
342
- e2e (0.4.2)
344
+ e2e (0.6.0)
343
345
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
344
346
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
345
347
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
346
348
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
347
349
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
348
- irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
350
+ irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
349
351
  json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
350
352
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
351
- lefthook (2.1.0) sha256=a100dc90139806e62b9aa40cf32e9edf34f6cff10c8b55ebd14a1b0add4b86bf
353
+ lefthook (2.1.1) sha256=1b4ce49fbadb3f6584c07daaa9164e560e27bb5aba18446bb9de2378fcf3f5b6
352
354
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
353
355
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
354
356
  loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
@@ -389,7 +391,7 @@ CHECKSUMS
389
391
  railties (8.0.4) sha256=8203d853dcffab4abcdd05c193f101676a92068075464694790f6d8f72d5cb47
390
392
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
391
393
  rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
392
- rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
394
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
393
395
  regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
394
396
  reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
395
397
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
@@ -397,7 +399,7 @@ CHECKSUMS
397
399
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
398
400
  rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
399
401
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
400
- rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
402
+ rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f
401
403
  rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
402
404
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
403
405
  rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
@@ -406,7 +408,7 @@ CHECKSUMS
406
408
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
407
409
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
408
410
  simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
409
- standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
411
+ standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
410
412
  standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
411
413
  standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
412
414
  stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
@@ -0,0 +1,15 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "irb"
6
+ gem "rake", "~> 13.0"
7
+ gem "rspec", "~> 3.0"
8
+ gem "appraisal"
9
+ gem "lefthook"
10
+ gem "standard"
11
+ gem "rubocop-rspec"
12
+ gem "rubocop-performance"
13
+ gem "rails", "~> 8.1.0"
14
+
15
+ gemspec path: "../"