import { prisma } from '../integration/setup'; /** * Truncates every table in the public schema (except _prisma_migrations) * so each test starts from an empty database. Sequences are reset to keep * autoincrement ids predictable. */ export async function resetDatabase() { const tables = await prisma.$queryRawUnsafe<{ tablename: string }[]>( `SELECT tablename::text AS tablename FROM pg_tables WHERE schemaname = 'public' AND tablename <> '_prisma_migrations'` ); if (tables.length === 0) return; const list = tables.map(({ tablename }) => `"public"."${tablename}"`); await prisma.$executeRawUnsafe( `TRUNCATE ${list.join(', ')} RESTART IDENTITY CASCADE;` ); }