import type { ClickHouse } from "@internal/clickhouse"; import { ClickhouseFactory, type ClientType } from "~/services/clickhouse/clickhouseFactory.server"; import type { OrganizationDataStoresRegistry } from "~/services/dataStores/organizationDataStoresRegistry.server"; const testReplicationRegistryStub = { isLoaded: true, isReady: Promise.resolve(), get: () => null, } as unknown as OrganizationDataStoresRegistry; /** * Routes all `replication` and `sessions_replication` clients to a single test ClickHouse; * other client types use the real factory defaults. */ export class TestReplicationClickhouseFactory extends ClickhouseFactory { constructor(private readonly replicationClient: ClickHouse) { super(testReplicationRegistryStub); } override getClickhouseForOrganizationSync( organizationId: string, clientType: ClientType ): ClickHouse { if (clientType === "replication" || clientType === "sessions_replication") { return this.replicationClient; } return super.getClickhouseForOrganizationSync(organizationId, clientType); } }