// Test setup for hydrator tests // Run: DB_PORT=5433 DB_USER=diachron_test DB_PASSWORD=diachron_test DB_NAME=diachron_test npx tsx --test tests/*.test.ts import { Pool } from "pg"; import { connectionConfig, migrate } from "../../../database"; const pool = new Pool(connectionConfig); export async function setupTestDatabase(): Promise { await migrate(); } export async function cleanupTables(): Promise { // Clean in reverse dependency order await pool.query("DELETE FROM user_emails"); await pool.query("DELETE FROM users"); } export async function teardownTestDatabase(): Promise { await pool.end(); } export async function insertTestUser(data: { id: string; displayName: string; status: string; email: string; }): Promise { const emailId = crypto.randomUUID(); const normalizedEmail = data.email.toLowerCase().trim(); await pool.query( `INSERT INTO users (id, display_name, status) VALUES ($1, $2, $3)`, [data.id, data.displayName, data.status], ); await pool.query( `INSERT INTO user_emails (id, user_id, email, normalized_email, is_primary) VALUES ($1, $2, $3, $4, true)`, [emailId, data.id, data.email, normalizedEmail], ); } export { pool };