From f399201c5ce2409ea1bf2d010a268ef34ab204f2 Mon Sep 17 00:00:00 2001 From: Sam Giffney Date: Thu, 27 Mar 2025 05:49:02 +0000 Subject: [PATCH 1/2] Add served_by --- lib/rspec/rails/example/system_example_group.rb | 6 ++++++ .../rails/example/system_example_group_spec.rb | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/rspec/rails/example/system_example_group.rb b/lib/rspec/rails/example/system_example_group.rb index b66b8fbbf..9a5feef8f 100644 --- a/lib/rspec/rails/example/system_example_group.rb +++ b/lib/rspec/rails/example/system_example_group.rb @@ -153,6 +153,12 @@ def driven_by(driver, **driver_options, &blk) @driver = ::ActionDispatch::SystemTestCase.driven_by(driver, **driver_options, &blk).tap(&:use) end + if ::Rails::VERSION::STRING.to_f >= 7.2 + def served_by(**options) + ::ActionDispatch::SystemTestCase.served_by(**options) + end + end + before do @routes = ::Rails.application.routes end diff --git a/spec/rspec/rails/example/system_example_group_spec.rb b/spec/rspec/rails/example/system_example_group_spec.rb index d9f3306c7..54b3dbdb3 100644 --- a/spec/rspec/rails/example/system_example_group_spec.rb +++ b/spec/rspec/rails/example/system_example_group_spec.rb @@ -78,6 +78,21 @@ module RSpec::Rails expect(example).to have_received(:driven_by).once end + + it 'calls :served_by method only once' do + group = RSpec::Core::ExampleGroup.describe do + include SystemExampleGroup + + before do + served_by(host: 'rails', port: 8080) + end + end + example = group.new + allow(example).to receive(:served_by).and_call_original + group.hooks.run(:before, :example, example) + + expect(example).to have_received(:served_by).once + end end describe '#after' do From 48bd424435480c9ab7137c995cba6b42ff1b303e Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Thu, 27 Mar 2025 08:12:25 +0000 Subject: [PATCH 2/2] Update spec/rspec/rails/example/system_example_group_spec.rb --- spec/rspec/rails/example/system_example_group_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/rspec/rails/example/system_example_group_spec.rb b/spec/rspec/rails/example/system_example_group_spec.rb index 54b3dbdb3..8a000a8c2 100644 --- a/spec/rspec/rails/example/system_example_group_spec.rb +++ b/spec/rspec/rails/example/system_example_group_spec.rb @@ -79,7 +79,7 @@ module RSpec::Rails expect(example).to have_received(:driven_by).once end - it 'calls :served_by method only once' do + it 'calls :served_by method only once', if: ::Rails::VERSION::STRING.to_f >= 7.2 do group = RSpec::Core::ExampleGroup.describe do include SystemExampleGroup