diff --git a/config/environments/test.rb b/config/environments/test.rb index abda6964d9..085bb94540 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -54,5 +54,33 @@ Openfoodnetwork::Application.configure do # Print deprecation notices to the stderr # config.active_support.deprecation = :stderr + # Fail tests on deprecated code unless it's a known case to solve. + Rails.application.deprecators.behavior = ->(message, callstack, deprecator) do + allowed_warnings = [ + # List strings here to allow matching deprecations. + # + # https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#new-activesupport-cache-serialization-format + "config.active_support.cache_format_version", + + # `Rails.application.secrets` is deprecated in favor of `Rails.application.credentials` and will be removed in Rails 7.2 + "Rails.application.secrets", + + "Passing the class as positional argument", + + # Spree::Order model aliases `bill_address`, but `bill_address` is not an attribute. Starting in Rails 7.2, alias_attribute with non-attribute targets will raise. Use `alias_method :billing_address, :bill_address` or define the method manually. (called from initialize at app/models/spree/order.rb:188) + "alias_attribute with non-attribute targets will raise", + + # Spree::CreditCard model aliases `cc_type` and has a method called `cc_type=` defined. Starting in Rails 7.2 `brand=` will not be calling `cc_type=` anymore. You may want to additionally define `brand=` to preserve the current behavior. + "model aliases", + + # Setting action_dispatch.show_exceptions to true is deprecated. Set to :all instead. + # spec/requests/errors_spec.rb + "action_dispatch.show_exceptions", + ] + unless allowed_warnings.any? { |pattern| message.match(pattern) } + ActiveSupport::Deprecation::DEFAULT_BEHAVIORS[:raise].call(message, callstack, deprecator) + end + end + config.active_job.queue_adapter = :test end diff --git a/spec/base_spec_helper.rb b/spec/base_spec_helper.rb index adf32656f2..29431ee0ee 100644 --- a/spec/base_spec_helper.rb +++ b/spec/base_spec_helper.rb @@ -68,9 +68,6 @@ InvisibleCaptcha.timestamp_enabled = false InvisibleCaptcha.spinner_enabled = false RSpec.configure do |config| - # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = Rails.root.join('spec/fixtures').to_s - # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false # instead of true.