import { beforeEach } from "vitest"; import { prisma } from "@/lib/db"; beforeEach(async () => { const dbName = (process.env.DATABASE_URL ?? "").split("/").pop()?.split("?")[0] ?? ""; if (!dbName.endsWith("_test")) { throw new Error( `refusing to run test cleanup against non-test database '${dbName}'. ` + "Set DATABASE_URL to a database whose name ends in '_test' (e.g. lyra_test).", ); } // Job cascades from Request; Request.monitoredReleaseId is SetNull. Delete children first. await prisma.job.deleteMany(); await prisma.request.deleteMany(); await prisma.libraryItem.deleteMany(); await prisma.monitoredRelease.deleteMany(); await prisma.watchedArtist.deleteMany(); await prisma.discoverySuggestion.deleteMany(); await prisma.discoverySeedContribution.deleteMany(); await prisma.discoverySeed.deleteMany(); await prisma.config.deleteMany(); await prisma.apiCache.deleteMany(); // read-through cache must not leak across tests await prisma.unmatchedAlbum.deleteMany(); });