Testing Multi-Tenant Search Isolation in Searchkick
This test suite validates multi-tenancy functionality in Searchkick using the Apartment gem for database isolation. It ensures proper data separation and search functionality across different tenants in a multi-tenant application environment.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
ankane/searchkick
test/multi_tenancy_test.rb
require_relative "test_helper"
class MultiTenancyTest < Minitest::Test
def setup
skip unless defined?(Apartment)
end
def test_basic
Apartment::Tenant.switch!("tenant1")
store_names ["Product A"]
Apartment::Tenant.switch!("tenant2")
store_names ["Product B"]
Apartment::Tenant.switch!("tenant1")
assert_search "product", ["Product A"], {load: false}
Apartment::Tenant.switch!("tenant2")
assert_search "product", ["Product B"], {load: false}
end
def teardown
Apartment::Tenant.reset if defined?(Apartment)
end
def default_model
Tenant
end
end