diff --git a/lib/database_cleaner/cleaner.rb b/lib/database_cleaner/cleaner.rb index bf83761b..3e965a9b 100644 --- a/lib/database_cleaner/cleaner.rb +++ b/lib/database_cleaner/cleaner.rb @@ -49,7 +49,7 @@ def strategy=(args) raise ArgumentError, "You must provide a strategy object, or a symbol for a known strategy along with initialization params." end - set_strategy_db @strategy, db + set_strategy_db self.strategy, db end def strategy diff --git a/spec/database_cleaner/cleaner_spec.rb b/spec/database_cleaner/cleaner_spec.rb index 1ae74dfa..12922e7d 100644 --- a/spec/database_cleaner/cleaner_spec.rb +++ b/spec/database_cleaner/cleaner_spec.rb @@ -154,6 +154,14 @@ module DatabaseCleaner cleaner.strategy = :truncation, { param: "one" } end + it "accepts nil as the null strategy for a non-default database" do + cleaner.db = :test_db + cleaner.strategy = nil + + expect(cleaner.strategy).to be_a(DatabaseCleaner::NullStrategy) + expect(cleaner.cleaning { :result }).to eq :result + end + it "should accept strategy objects" do strategy = double cleaner.strategy = strategy diff --git a/spec/database_cleaner/cleaners_spec.rb b/spec/database_cleaner/cleaners_spec.rb index 6971716c..b7e4b2ac 100644 --- a/spec/database_cleaner/cleaners_spec.rb +++ b/spec/database_cleaner/cleaners_spec.rb @@ -53,6 +53,16 @@ end end + it "sets the null strategy across default and non-default databases" do + cleaners[:active_record] + cleaners[:active_record, db: :second_db] + + cleaners.strategy = nil + + expect(cleaners.strategy.values).to all(be_a(DatabaseCleaner::NullStrategy)) + expect(cleaners.cleaning { :result }).to eq :result + end + context "top level api methods" do context "single orm single db" do let!(:cleaner) { cleaners[:active_record] }