Skip to content

Commit 037ac80

Browse files
committed
chore: release 0.3.1
1 parent 90cc07d commit 037ac80

10 files changed

Lines changed: 41 additions & 26 deletions

CHANGELOG.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,46 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.3.1] - 2026-02-05
9+
10+
### Fixed
11+
12+
- **RSpec Integration:** Fixed `uninitialized constant RSpec::Matchers` error when loading the gem in environments where RSpec is only partially initialized (e.g., via `Bundler.require`).
13+
- Matchers are now only defined if `RSpec::Matchers` is actually present.
14+
- Matchers are no longer automatically loaded by `require "e2e"`; they are now explicitly loaded via `require "e2e/rspec"`.
15+
816
## [0.3.0] - 2026-02-05
917

1018
### Added
19+
1120
- **Matchers:** Added custom RSpec matchers:
12-
- `have_class("class-name")`
13-
- `have_text("content")` / `have_content`
14-
- `have_value("val")`
15-
- `have_attribute("name", "val")`
16-
- `be_visible`
17-
- `be_checked`
18-
- `be_disabled` / `be_enabled`
21+
- `have_class("class-name")`
22+
- `have_text("content")` / `have_content`
23+
- `have_value("val")`
24+
- `have_attribute("name", "val")`
25+
- `be_visible`
26+
- `be_checked`
27+
- `be_disabled` / `be_enabled`
1928
- **Element API:** Added `classes`, `has_class?`, `visible?`, `[]`, `value`, `checked?`, `disabled?`, `enabled?`.
2029
- **Debugging:** Improved debugging documentation and fixed `pause` helper.
2130

2231
## [0.2.0] - 2026-02-05
2332

2433
### Added
34+
2535
- **Browser Switching:** Support for Chromium, Firefox, and WebKit via `E2E.config.browser_type`.
2636
- **Dynamic Session Management:** `E2E.reset_session!` to handle browser switching mid-suite.
2737
- **Generators:**
28-
- `rails g e2e:install` now detects test framework (RSpec/Minitest) and injects RuboCop config.
29-
- `rails g e2e:test` scaffolds test files based on the detected framework.
38+
- `rails g e2e:install` now detects test framework (RSpec/Minitest) and injects RuboCop config.
39+
- `rails g e2e:test` scaffolds test files based on the detected framework.
3040
- **Minitest Support:** Full integration via `E2E::Minitest::TestCase`.
3141
- **RuboCop Integration:** Automatic injection of `inherit_gem` to relax rules for E2E specs.
3242
- **Debugging:** `pause` helper for calling Playwright Inspector.
3343

3444
## [0.1.0] - 2026-02-05
3545

3646
### Added
47+
3748
- **Core:** Initial release of `e2e` gem, a unified testing framework wrapper around Playwright.
3849
- **Drivers:** Playwright driver implementation using `playwright-ruby-client` (IPC/Pipes).
3950
- **DSL:** Capybara-like API including `visit`, `click_button`, `click_link`, `fill_in`, `check`, `uncheck`, `attach_file`, `find`, `all`.

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
e2e (0.3.0)
4+
e2e (0.3.1)
55
playwright-ruby-client (>= 1.40.0)
66
rack
77
rackup
@@ -148,7 +148,7 @@ CHECKSUMS
148148
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
149149
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
150150
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
151-
e2e (0.3.0)
151+
e2e (0.3.1)
152152
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
153153
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
154154
irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806

gemfiles/rails_7.0.gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: ..
33
specs:
4-
e2e (0.3.0)
4+
e2e (0.3.1)
55
playwright-ruby-client (>= 1.40.0)
66
rack
77
rackup
@@ -335,7 +335,7 @@ CHECKSUMS
335335
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
336336
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
337337
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
338-
e2e (0.3.0)
338+
e2e (0.3.1)
339339
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
340340
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
341341
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11

gemfiles/rails_7.1.gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: ..
33
specs:
4-
e2e (0.3.0)
4+
e2e (0.3.1)
55
playwright-ruby-client (>= 1.40.0)
66
rack
77
rackup
@@ -349,7 +349,7 @@ CHECKSUMS
349349
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
350350
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
351351
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
352-
e2e (0.3.0)
352+
e2e (0.3.1)
353353
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
354354
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
355355
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11

gemfiles/rails_7.2.gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: ..
33
specs:
4-
e2e (0.3.0)
4+
e2e (0.3.1)
55
playwright-ruby-client (>= 1.40.0)
66
rack
77
rackup
@@ -343,7 +343,7 @@ CHECKSUMS
343343
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
344344
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
345345
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
346-
e2e (0.3.0)
346+
e2e (0.3.1)
347347
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
348348
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
349349
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11

gemfiles/rails_8.0.gemfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: ..
33
specs:
4-
e2e (0.3.0)
4+
e2e (0.3.1)
55
playwright-ruby-client (>= 1.40.0)
66
rack
77
rackup
@@ -337,9 +337,9 @@ CHECKSUMS
337337
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
338338
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
339339
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
340-
docile (1.4.1)
340+
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
341341
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
342-
e2e (0.3.0)
342+
e2e (0.3.1)
343343
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
344344
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
345345
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
@@ -403,9 +403,9 @@ CHECKSUMS
403403
rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
404404
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
405405
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
406-
simplecov (0.22.0)
407-
simplecov-html (0.13.2)
408-
simplecov_json_formatter (0.1.4)
406+
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
407+
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
408+
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
409409
standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
410410
standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
411411
standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2

lib/e2e.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
require_relative "e2e/session"
77
require_relative "e2e/dsl"
88
require_relative "e2e/element"
9-
require_relative "e2e/matchers"
109
require_relative "e2e/rails"
1110
require_relative "e2e/drivers/playwright"
1211

lib/e2e/matchers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
if defined?(RSpec)
3+
if defined?(RSpec::Matchers)
44
RSpec::Matchers.define :have_class do |expected_class|
55
match do |element|
66
element.has_class?(expected_class)

lib/e2e/rspec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# frozen_string_literal: true
22

33
require "e2e"
4+
begin
5+
require "rspec/expectations"
6+
rescue LoadError
7+
end
8+
require_relative "matchers"
49

510
RSpec.configure do |config|
611
config.include E2E::DSL, type: :e2e

lib/e2e/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module E2E
4-
VERSION = "0.3.0"
4+
VERSION = "0.3.1"
55
end

0 commit comments

Comments
 (0)