Setup testing for acts_as_tenant
masterWhen testing, you must ensure the tenant is cleaned up after each test. For integration/request tests, use ActsAsTenant::TestTenantMiddleware to handle the test_tenant value, which survives across requests better than current_tenant.
1. Configure Middleware
In test.rb:
require_dependency 'acts_as_tenant/test_tenant_middleware'
Rails.application.configure do
config.middleware.use ActsAsTenant::TestTenantMiddleware
end2. Configure RSpec/Test Setup
In spec_helper.rb:
config.before(:suite) do |example|
$default_account = Account.create!
end
config.before(:each) do |example|
if example.metadata[:type] == :request
ActsAsTenant.test_tenant = $default_account
else
ActsAsTenant.current_tenant = $default_account
end
end
config.after(:each) do |example|
ActsAsTenant.current_tenant = nil
ActsAsTenant.test_tenant = nil
end# test.rb
require_dependency 'acts_as_tenant/test_tenant_middleware'
Rails.application.configure do
config.middleware.use ActsAsTenant::TestTenantMiddleware
end