Skip to content
File

Blob: tests/worker/helpers/db.ts

typescript26 lines
1import { env } from "cloudflare:workers";
2import { sql } from "drizzle-orm";
3import { createDb, type Db } from "@/worker/db/d1/client";
4 
5type D1Binding = typeof env.DB;
6 
7export function getDb(session: string | null = "first-primary"): Db {
8 const d1: D1Binding | ReturnType<D1Binding["withSession"]> = session ? env.DB.withSession(session) : env.DB;
9 return createDb(d1);
10}
11 
12export async function resetD1Tables(): Promise<void> {
13 const db = getDb();
14 await db.run(sql`DELETE FROM uploads`);
15 await db.run(sql`DELETE FROM page_shares`);
16 await db.run(sql`DELETE FROM published_pages`);
17 await db.run(sql`DELETE FROM workspace_sites`);
18 await db.run(sql`UPDATE pages SET parent_id = NULL`);
19 await db.run(sql`DELETE FROM pages`);
20 await db.run(sql`DELETE FROM invites`);
21 await db.run(sql`DELETE FROM memberships`);
22 await db.run(sql`DELETE FROM workspaces`);
23 await db.run(sql`DELETE FROM tessera_identities`);
24 await db.run(sql`DELETE FROM users`);
25}