diff --git a/spec/rspec/rails/configuration_spec.rb b/spec/rspec/rails/configuration_spec.rb index a2b2dd09d..fdac679a2 100644 --- a/spec/rspec/rails/configuration_spec.rb +++ b/spec/rspec/rails/configuration_spec.rb @@ -123,7 +123,7 @@ end end - describe "#infer_spec_type_from_file_location!" do + describe "#infer_spec_type_from_file_location!", :with_isolated_config do def in_inferring_type_from_location_environment in_sub_process do RSpec.configuration.infer_spec_type_from_file_location! diff --git a/spec/rspec/rails/example/channel_example_group_spec.rb b/spec/rspec/rails/example/channel_example_group_spec.rb index 642173364..4dccc8eab 100644 --- a/spec/rspec/rails/example/channel_example_group_spec.rb +++ b/spec/rspec/rails/example/channel_example_group_spec.rb @@ -1,7 +1,7 @@ require "rspec/rails/feature_check" module RSpec::Rails - RSpec.describe ChannelExampleGroup do + RSpec.describe ChannelExampleGroup, :with_isolated_config do if RSpec::Rails::FeatureCheck.has_action_cable_testing? it_behaves_like "an rspec-rails example group mixin", :channel, './spec/channels/', '.\\spec\\channels\\' diff --git a/spec/rspec/rails/example/controller_example_group_spec.rb b/spec/rspec/rails/example/controller_example_group_spec.rb index d50e88ae5..19ed6c07c 100644 --- a/spec/rspec/rails/example/controller_example_group_spec.rb +++ b/spec/rspec/rails/example/controller_example_group_spec.rb @@ -3,7 +3,7 @@ def self.abstract?; false; end end module RSpec::Rails - RSpec.describe ControllerExampleGroup do + RSpec.describe ControllerExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :controller, './spec/controllers/', '.\\spec\\controllers\\' diff --git a/spec/rspec/rails/example/feature_example_group_spec.rb b/spec/rspec/rails/example/feature_example_group_spec.rb index 35ccbcf72..f84de38ee 100644 --- a/spec/rspec/rails/example/feature_example_group_spec.rb +++ b/spec/rspec/rails/example/feature_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe FeatureExampleGroup do + RSpec.describe FeatureExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :feature, './spec/features/', '.\\spec\\features\\' diff --git a/spec/rspec/rails/example/helper_example_group_spec.rb b/spec/rspec/rails/example/helper_example_group_spec.rb index 27b18ca33..d358261f4 100644 --- a/spec/rspec/rails/example/helper_example_group_spec.rb +++ b/spec/rspec/rails/example/helper_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe HelperExampleGroup do + RSpec.describe HelperExampleGroup, :with_isolated_config do module ::FoosHelper class InternalClass end diff --git a/spec/rspec/rails/example/job_example_group_spec.rb b/spec/rspec/rails/example/job_example_group_spec.rb index fff75d493..dbc135715 100644 --- a/spec/rspec/rails/example/job_example_group_spec.rb +++ b/spec/rspec/rails/example/job_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe JobExampleGroup do + RSpec.describe JobExampleGroup, :with_isolated_config do if defined?(ActiveJob) it_behaves_like "an rspec-rails example group mixin", :job, './spec/jobs/', '.\\spec\\jobs\\' diff --git a/spec/rspec/rails/example/mailbox_example_group_spec.rb b/spec/rspec/rails/example/mailbox_example_group_spec.rb index 09793b2e7..9a6c43d36 100644 --- a/spec/rspec/rails/example/mailbox_example_group_spec.rb +++ b/spec/rspec/rails/example/mailbox_example_group_spec.rb @@ -14,7 +14,7 @@ def receive(*) module RSpec module Rails - RSpec.describe MailboxExampleGroup, skip: !RSpec::Rails::FeatureCheck.has_action_mailbox? do + RSpec.describe MailboxExampleGroup, :with_isolated_config, skip: !RSpec::Rails::FeatureCheck.has_action_mailbox? do it_behaves_like "an rspec-rails example group mixin", :mailbox, './spec/mailboxes/', '.\\spec\\mailboxes\\' diff --git a/spec/rspec/rails/example/mailer_example_group_spec.rb b/spec/rspec/rails/example/mailer_example_group_spec.rb index 7baa327c8..5f558e27b 100644 --- a/spec/rspec/rails/example/mailer_example_group_spec.rb +++ b/spec/rspec/rails/example/mailer_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe MailerExampleGroup do + RSpec.describe MailerExampleGroup, :with_isolated_config do module ::Rails; end before do allow(Rails).to receive_message_chain(:application, :routes, :url_helpers).and_return(Rails) diff --git a/spec/rspec/rails/example/model_example_group_spec.rb b/spec/rspec/rails/example/model_example_group_spec.rb index e496f1054..71dd62994 100644 --- a/spec/rspec/rails/example/model_example_group_spec.rb +++ b/spec/rspec/rails/example/model_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe ModelExampleGroup do + RSpec.describe ModelExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :model, './spec/models/', '.\\spec\\models\\' end diff --git a/spec/rspec/rails/example/rails_example_group_spec.rb b/spec/rspec/rails/example/rails_example_group_spec.rb index d21dc2c3b..a4ded3f55 100644 --- a/spec/rspec/rails/example/rails_example_group_spec.rb +++ b/spec/rspec/rails/example/rails_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe RailsExampleGroup do + RSpec.describe RailsExampleGroup, :with_isolated_config do it 'supports tagged_logger' do expect(described_class.private_instance_methods).to include(:tagged_logger) end diff --git a/spec/rspec/rails/example/request_example_group_spec.rb b/spec/rspec/rails/example/request_example_group_spec.rb index f8d3ef5f0..bcee23d01 100644 --- a/spec/rspec/rails/example/request_example_group_spec.rb +++ b/spec/rspec/rails/example/request_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe RequestExampleGroup do + RSpec.describe RequestExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :request, './spec/requests/', '.\\spec\\requests\\', './spec/integration/', '.\\spec\\integration\\', diff --git a/spec/rspec/rails/example/routing_example_group_spec.rb b/spec/rspec/rails/example/routing_example_group_spec.rb index 8ead44c39..2ccd65954 100644 --- a/spec/rspec/rails/example/routing_example_group_spec.rb +++ b/spec/rspec/rails/example/routing_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe RoutingExampleGroup do + RSpec.describe RoutingExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :routing, './spec/routing/', '.\\spec\\routing\\' diff --git a/spec/rspec/rails/example/system_example_group_spec.rb b/spec/rspec/rails/example/system_example_group_spec.rb index bba10512d..274366052 100644 --- a/spec/rspec/rails/example/system_example_group_spec.rb +++ b/spec/rspec/rails/example/system_example_group_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe SystemExampleGroup do + RSpec.describe SystemExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :system, './spec/system/', '.\\spec\\system\\' diff --git a/spec/rspec/rails/example/view_example_group_spec.rb b/spec/rspec/rails/example/view_example_group_spec.rb index 7dd0b3fec..106b7ae05 100644 --- a/spec/rspec/rails/example/view_example_group_spec.rb +++ b/spec/rspec/rails/example/view_example_group_spec.rb @@ -1,7 +1,7 @@ require 'support/group_failure_formatter' module RSpec::Rails - RSpec.describe ViewExampleGroup do + RSpec.describe ViewExampleGroup, :with_isolated_config do it_behaves_like "an rspec-rails example group mixin", :view, './spec/views/', '.\\spec\\views\\' diff --git a/spec/rspec/rails/fixture_file_upload_support_spec.rb b/spec/rspec/rails/fixture_file_upload_support_spec.rb index d28e29d32..ea26fe65d 100644 --- a/spec/rspec/rails/fixture_file_upload_support_spec.rb +++ b/spec/rspec/rails/fixture_file_upload_support_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe FixtureFileUploadSupport do + RSpec.describe FixtureFileUploadSupport, :with_isolated_config do context 'with fixture paths set in config' do it 'resolves fixture file' do RSpec.configuration.fixture_paths = [File.dirname(__FILE__)] diff --git a/spec/rspec/rails/fixture_support_spec.rb b/spec/rspec/rails/fixture_support_spec.rb index 8621b5da5..1094486f0 100644 --- a/spec/rspec/rails/fixture_support_spec.rb +++ b/spec/rspec/rails/fixture_support_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe FixtureSupport do + RSpec.describe FixtureSupport, :with_isolated_config do context "with use_transactional_fixtures set to false" do it "still supports fixture_path/fixture_paths" do allow(RSpec.configuration).to receive(:use_transactional_fixtures) { false } diff --git a/spec/rspec/rails/matchers/have_http_status_spec.rb b/spec/rspec/rails/matchers/have_http_status_spec.rb index 82333c74c..dfb8a301b 100644 --- a/spec/rspec/rails/matchers/have_http_status_spec.rb +++ b/spec/rspec/rails/matchers/have_http_status_spec.rb @@ -502,6 +502,7 @@ def create_response(opts = {}) context 'with deprecated rack status codes' do it 'supports the original names' do + allow(Rack::Utils).to receive(:warn).with(/unprocessable_entity is deprecated/, anything) expect(create_response(status: 422)).to have_http_status(:unprocessable_entity) end end diff --git a/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb b/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb index 5c52d0c46..13e950dfd 100644 --- a/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb +++ b/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb @@ -1,4 +1,4 @@ -RSpec.describe RSpec::Rails::MinitestLifecycleAdapter do +RSpec.describe RSpec::Rails::MinitestLifecycleAdapter, :with_isolated_config do it "invokes minitest lifecycle hooks at the appropriate times" do invocations = [] example_group = RSpec::Core::ExampleGroup.describe("MinitestHooks") do diff --git a/spec/rspec/rails/setup_and_teardown_adapter_spec.rb b/spec/rspec/rails/setup_and_teardown_adapter_spec.rb index c6b515b22..8f8271da4 100644 --- a/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +++ b/spec/rspec/rails/setup_and_teardown_adapter_spec.rb @@ -1,4 +1,4 @@ -RSpec.describe RSpec::Rails::SetupAndTeardownAdapter do +RSpec.describe RSpec::Rails::SetupAndTeardownAdapter, :with_isolated_config do describe ".setup" do it "registers before hooks in the order setup is received" do group = RSpec::Core::ExampleGroup.describe do diff --git a/spec/rspec/rails/view_rendering_spec.rb b/spec/rspec/rails/view_rendering_spec.rb index 3273f2015..9ebefaf1d 100644 --- a/spec/rspec/rails/view_rendering_spec.rb +++ b/spec/rspec/rails/view_rendering_spec.rb @@ -1,5 +1,5 @@ module RSpec::Rails - RSpec.describe ViewRendering do + RSpec.describe ViewRendering, :with_isolated_config do let(:group) do RSpec::Core::ExampleGroup.describe do def controller @@ -53,7 +53,7 @@ def example.controller expect(group.new.render_views?).to be_falsey end - it "overrides the global config if render_views is enabled there" do + it "overrides the global config if render_views is enabled there", :with_isolated_config do allow(RSpec.configuration).to receive(:render_views?).and_return true group.render_views false expect(group.new.render_views?).to be_falsey diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 570f4cd12..f91c50f22 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -71,9 +71,11 @@ def self.run_all(reporter = nil) config.warnings = true config.raise_on_warning = true + config.raise_errors_for_deprecations! + # Execute a provided block with RSpec global objects (configuration, # world, current example) reset. This is used to test specs with RSpec. - config.around(:example) do |example| + config.around(:example, :with_isolated_config) do |example| RSpec::Core::Sandbox.sandboxed do |sandbox_config| # If there is an example-within-an-example, we want to make sure the inner # example does not get a reference to the outer example (the real spec) if