import { Client } from 'pg'; async function waitForDb(retries = 20): Promise { const config = { host: process.env.TEST_PGHOST || 'localhost', port: parseInt(process.env.TEST_PGPORT || '55432', 10), user: process.env.TEST_PGUSER || 'redefined_test', password: process.env.TEST_PGPASSWORD || 'redefined_test', database: process.env.TEST_PGDATABASE || 'redefined_test' }; for (let i = 0; i < retries; i++) { const client = new Client(config); try { await client.connect(); await client.end(); return; } catch { await new Promise(r => setTimeout(r, 1000)); } } throw new Error( 'Could not reach the test database on port 55432. Run `npm run db:test:up` before `npm run test:integration`.' ); } export default async function globalSetup(): Promise { await waitForDb(); const { migrate, closeDb } = await import('./testDb'); await migrate(); await closeDb(); }