File tree Expand file tree Collapse file tree 3 files changed +31
-1
lines changed Expand file tree Collapse file tree 3 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,8 @@ Enhancements:
55
66* Make the API request scaffold template more consistent and compatible with
77 Rails 6.1. (Naoto Hamada, #2484 )
8+ * Provide support to turn off transactional tests for select examples.
9+ (Stan Lo, #2495 )
810
911Bug Fixes:
1012
Original file line number Diff line number Diff line change @@ -13,7 +13,8 @@ module FixtureSupport
1313 # Monkey patched to avoid collisions with 'let(:name)' in Rails 6.1 and after
1414 # and let(:method_name) before Rails 6.1.
1515 def run_in_transaction?
16- use_transactional_tests && !self . class . uses_transaction? ( self )
16+ current_example_name = ( RSpec . current_example && RSpec . current_example . metadata [ :description ] )
17+ use_transactional_tests && !self . class . uses_transaction? ( current_example_name )
1718 end
1819
1920 included do
Original file line number Diff line number Diff line change @@ -12,6 +12,33 @@ module RSpec::Rails
1212 end
1313 end
1414
15+ context "with use_transactional_tests set to true" do
16+ it "works with #uses_transaction helper" do
17+ group = RSpec ::Core ::ExampleGroup . describe do
18+ include FixtureSupport
19+ self . use_transactional_tests = true
20+
21+ uses_transaction "doesn't run in transaction"
22+
23+ it "doesn't run in transaction" do
24+ expect ( ActiveRecord ::Base . connection . transaction_open? ) . to eq ( false )
25+ end
26+
27+ it "runs in transaction" do
28+ expect ( ActiveRecord ::Base . connection . transaction_open? ) . to eq ( true )
29+ end
30+ end
31+
32+ expect_to_pass ( group )
33+ end
34+
35+ def expect_to_pass ( group )
36+ result = group . run ( failure_reporter )
37+ failure_reporter . exceptions . map { |e | raise e }
38+ expect ( result ) . to be true
39+ end
40+ end
41+
1542 it "will allow #setup_fixture to run successfully" , skip : Rails . version . to_f <= 6.0 do
1643 group = RSpec ::Core ::ExampleGroup . describe do
1744 include FixtureSupport
You can’t perform that action at this time.
0 commit comments