feat: testing with real database
Some checks failed
TrafficCue Server CI / check (push) Failing after 21s

This commit is contained in:
2025-08-30 10:25:14 +02:00
parent 78f36a34fc
commit 2e91304f2a

View File

@ -16,36 +16,42 @@ process.env.REVIEWS_ENABLED = "true";
const app = await import("../src/main").then(m => m.default); const app = await import("../src/main").then(m => m.default);
const PGSQL_IMAGE = "postgres:latest"; const PGSQL_IMAGE = "postgres:latest";
let postgresContainer: StartedTestContainer; let postgresContainer: StartedTestContainer | null = null;
let jwk: JWK; let jwk: JWK;
let privateKey: string; let privateKey: string;
// Spin up a temporary Postgres container for testing // Spin up a temporary Postgres container for testing
beforeAll(async () => { beforeAll(async () => {
postgresContainer = await new GenericContainer(PGSQL_IMAGE) if(!process.env.DATABASE_URL) {
.withEnvironment({ postgresContainer = await new GenericContainer(PGSQL_IMAGE)
POSTGRES_USER: "tc", .withEnvironment({
POSTGRES_PASSWORD: "tc", POSTGRES_USER: "tc",
POSTGRES_DB: "tc" POSTGRES_PASSWORD: "tc",
}) POSTGRES_DB: "tc"
.withExposedPorts(5432) })
.withHealthCheck({ .withExposedPorts(5432)
test: ["CMD-SHELL", "pg_isready -U postgres"], .withHealthCheck({
interval: 1000, test: ["CMD-SHELL", "pg_isready -U postgres"],
timeout: 3000, interval: 1000,
retries: 5, timeout: 3000,
}) retries: 5,
.withWaitStrategy(Wait.forHealthCheck()) })
.start(); .withWaitStrategy(Wait.forHealthCheck())
.start();
process.env.DATABASE_URL = `postgres://tc:tc@localhost:${postgresContainer.getMappedPort(5432)}/tc`;
process.env.DATABASE_URL = `postgres://tc:tc@localhost:${postgresContainer.getMappedPort(5432)}/tc`;
}
getDb(true); getDb(true);
await initDb(); await initDb();
}); });
afterAll(async () => { afterAll(async () => {
await postgresContainer.stop(); // Nuke the entire database after tests
const db = getDb();
await db.dropDatabase();
await db.destroy();
if(postgresContainer) await postgresContainer.stop();
}); });
// Override JWKS URL to prevent external calls during tests // Override JWKS URL to prevent external calls during tests