Code based on the logger Rails uses by default; as mentioned in the Rails configuration guide: > [the logger] defaults to an instance of ActiveSupport::TaggedLogging > that wraps an instance of ActiveSupport::Logger which outputs a log to > the log/ directory. You can supply a custom logger, to get full > compatibility you must follow these guidelines: > > * To support a formatter, you must manually assign a formatter from > the config.log_formatter value to the logger. > * To support tagged logs, the log instance must be wrapped with > ActiveSupport::TaggedLogging. > * To support silencing, the logger must include > ActiveSupport::LoggerSilence module. The ActiveSupport::Logger class > already includes these modules. Just like the documentation mentions, we're enabling log rotation using "1" as the number of old files to keep and then the maximum size of the log file.
76 lines
2.8 KiB
Ruby
76 lines
2.8 KiB
Ruby
# The test environment is used exclusively to run your application's
|
|
# test suite. You never need to work with it otherwise. Remember that
|
|
# your test database is "scratch space" for the test suite and is wiped
|
|
# and recreated between test runs. Don't rely on the data there!
|
|
|
|
Warning[:deprecated] = true
|
|
|
|
Rails.application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb.
|
|
|
|
# Some tests require the following languages (en, es, fr, nl, pt-BR)
|
|
# so we override the available languages for the test environment.
|
|
config.i18n.default_locale = :en
|
|
config.i18n.available_locales = %w[de en es fr nl pt-BR zh-CN]
|
|
|
|
config.cache_classes = true
|
|
|
|
# Do not eager load code on boot. This avoids loading your whole application
|
|
# just for the purpose of running a single test. If you are using a tool that
|
|
# preloads Rails for running tests, you may have to set it to true.
|
|
config.eager_load = false
|
|
|
|
# Configure public file server for tests with Cache-Control for performance.
|
|
config.public_file_server.enabled = true
|
|
config.public_file_server.headers = {
|
|
"Cache-Control" => "public, max-age=#{1.hour.to_i}"
|
|
}
|
|
|
|
# Show full error reports and disable caching.
|
|
config.consider_all_requests_local = true
|
|
config.action_controller.perform_caching = false
|
|
config.cache_store = :null_store
|
|
|
|
# Raise exceptions instead of rendering exception templates.
|
|
config.action_dispatch.show_exceptions = false
|
|
|
|
# Disable request forgery protection in test environment.
|
|
config.action_controller.allow_forgery_protection = false
|
|
|
|
# Store uploaded files on the local file system in a temporary directory.
|
|
config.active_storage.service = :test
|
|
|
|
config.action_mailer.perform_caching = false
|
|
|
|
# Tell Action Mailer not to deliver emails to the real world.
|
|
# The :test delivery method accumulates sent emails in the
|
|
# ActionMailer::Base.deliveries array.
|
|
config.action_mailer.delivery_method = :test
|
|
config.action_mailer.default_url_options = { host: "test" }
|
|
|
|
# Print deprecation notices to the stderr.
|
|
config.active_support.deprecation = :stderr
|
|
|
|
# Raises error for missing translations.
|
|
# config.action_view.raise_on_missing_translations = true
|
|
|
|
# Limit size of local logs
|
|
# TODO: replace with config.log_file_size after upgrading to Rails 7.1
|
|
logger = ActiveSupport::Logger.new(config.default_log_file, 1, 100.megabytes)
|
|
logger.formatter = config.log_formatter
|
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
|
|
|
config.after_initialize do
|
|
Bullet.enable = true
|
|
Bullet.bullet_logger = true
|
|
if ENV["BULLET"]
|
|
Bullet.raise = true # raise an error if n+1 query occurs
|
|
end
|
|
end
|
|
|
|
# Allow managing different tenants using the same application
|
|
config.multitenancy = true
|
|
end
|
|
|
|
require Rails.root.join("config", "environments", "custom", "test")
|