Skip to content

Commit 83d96a3

Browse files
committed
fix: use the correct generation for tests
1 parent 85add3b commit 83d96a3

3 files changed

Lines changed: 18 additions & 17 deletions

File tree

src/remote/remote-controller.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ test("controller syncs correctly", async () => {
4040
expect(syncResult.status).toEqual(200);
4141

4242
const pool = new Pool({
43-
connectionString: target.withDatabaseName(Remote.defaultOptimizingDbPrefix).toString(),
43+
connectionString: innerRemote.optimizingDb.toString(),
4444
});
4545
const tablesAfter =
4646
await pool.query("select tablename from pg_tables where schemaname = 'public'");
@@ -90,7 +90,7 @@ test("creating an index via endpoint adds it to the optimizing db", async () =>
9090
expect(syncResult.status).toEqual(200);
9191

9292
const pool = new Pool({
93-
connectionString: target.withDatabaseName(Remote.defaultOptimizingDbPrefix).toString(),
93+
connectionString: innerRemote.optimizingDb.toString(),
9494
});
9595

9696
// Verify no indexes exist initially

src/remote/remote.test.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { Pool } from "pg";
77
import { ConnectionManager } from "../sync/connection-manager.ts";
88
import { normalizeQuery } from "./test-utils.ts";
99

10-
import { PgIdentifier } from "@query-doctor/core";
1110
import { type Op } from "jsondiffpatch/formatters/jsonpatch";
1211

1312
const TEST_TARGET_CONTAINER_NAME = "postgres:17";
@@ -94,7 +93,7 @@ test("syncs correctly", async () => {
9493
expect(indexNames).toEqual(expect.arrayContaining(["testing_1234"]));
9594

9695
const pool = new Pool({
97-
connectionString: target.withDatabaseName(Remote.defaultOptimizingDbPrefix).toString(),
96+
connectionString: remote.optimizingDb.toString(),
9897
});
9998

10099
const indexesAfter =
@@ -203,10 +202,8 @@ test("raw timescaledb syncs correctly", async () => {
203202
try {
204203
await using remote = new Remote(targetConn, manager);
205204

206-
const t = manager.getOrCreateConnection(
207-
targetConn.withDatabaseName(PgIdentifier.fromString("optimizing_db")),
208-
);
209205
await remote.syncFrom(sourceConn);
206+
const t = manager.getOrCreateConnection(remote.optimizingDb);
210207
const indexesAfter = await t.exec(
211208
"select indexname from pg_indexes where schemaname = 'public'",
212209
);
@@ -349,10 +346,8 @@ test("timescaledb with continuous aggregates sync correctly", async () => {
349346
try {
350347
await using remote = new Remote(targetConn, manager);
351348

352-
const t = manager.getOrCreateConnection(
353-
targetConn.withDatabaseName(PgIdentifier.fromString("optimizing_db")),
354-
);
355349
await remote.syncFrom(sourceConn);
350+
const t = manager.getOrCreateConnection(remote.optimizingDb);
356351
const queries = remote.optimizer.getQueries();
357352
const queryStrings = queries.map((q) => normalizeQuery(q.query));
358353

src/remote/remote.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type RemoteEvents = {
3636
export class Remote extends EventEmitter<RemoteEvents> {
3737
static readonly baseDbName = PgIdentifier.fromString("postgres");
3838
private static readonly optimizingDbPrefix = "optimizing_db";
39-
static defaultOptimizingDbPrefix = PgIdentifier.fromString(`${Remote.optimizingDbPrefix}_0`)
39+
static defaultOptimizingDbPrefix = PgIdentifier.fromString(Remote.optimizingDbPrefix)
4040

4141
/* Threshold that we determine is "too few rows" for Postgres to start using indexes
4242
* and not defaulting to table scan.
@@ -59,6 +59,10 @@ export class Remote extends EventEmitter<RemoteEvents> {
5959
/** The URL of the current generation optimizing db */
6060
private optimizingDbUDRL: Connectable;
6161

62+
get optimizingDb(): Connectable {
63+
return this.optimizingDbUDRL;
64+
}
65+
6266
private isPolling = false;
6367
private queryLoader?: QueryLoader;
6468
private schemaLoader?: SchemaLoader;
@@ -213,18 +217,20 @@ export class Remote extends EventEmitter<RemoteEvents> {
213217
}
214218
}
215219

220+
private generationDbName(generation: number): PgIdentifier {
221+
return generation === 0
222+
? Remote.defaultOptimizingDbPrefix
223+
: PgIdentifier.fromString(`${Remote.optimizingDbPrefix}_${generation}`);
224+
}
225+
216226
private async resetDatabase(): Promise<void> {
217227
const prevGeneration = this.generation;
218228
const nextGeneration = prevGeneration + 1;
219-
const nextDbName = PgIdentifier.fromString(
220-
`${Remote.optimizingDbPrefix}_${nextGeneration}`,
221-
);
229+
const nextDbName = this.generationDbName(nextGeneration);
222230
log.info(`Creating new generation database: ${nextDbName}`, "remote");
223231
const baseDb = this.manager.getOrCreateConnection(this.baseDbURL);
224232
await baseDb.exec(`create database ${nextDbName};`);
225-
const prevDbName = PgIdentifier.fromString(
226-
`${Remote.optimizingDbPrefix}_${prevGeneration}`,
227-
);
233+
const prevDbName = this.generationDbName(prevGeneration);
228234
this.generation = nextGeneration;
229235
this.optimizingDbUDRL = this.optimizingDbUDRL.withDatabaseName(nextDbName);
230236
this.optimizer.updateConnectable(this.optimizingDbUDRL);

0 commit comments

Comments
 (0)