The subdomain elevator we were using, which is included in apartment, didn't work on hosts already including a subdomain (like demo.consul.dev, for instance). In those cases, we would manually add the subdomain to the list of excluded subdomains. Since these subdomains will be different for different CONSUL installations, it meant each installation had to customize the code. Furthermore, existing installations using subdomains would stop working. So we're using a custom method to find the current tenant, based on the host defined in `default_url_options`. In order to avoid any side-effects on single-tenant applications, we're adding a new configuration option to enable multitenancy We're enabling two ways to handle this configuration option: a) Change the application_custom.rb file, which is under version control b) Change the secrets.yml file, which is not under version control This way people prefering to handle configuration options through version control can do so, while people who prefer handling configuration options through te secrets.yml file can do so as well. We're also disabling the super-annoying warnings mentioning there are no tenants which we got every time we run migrations on single-tenant applications. These messages will only be enabled when the multitenancy feature is enabled too. For this reason, we're also disabling the multitenancy feature in the development environment by default.
68 lines
2.5 KiB
Ruby
68 lines
2.5 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!
|
|
|
|
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
|
|
|
|
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")
|