36 lines · 1.3 KB · TypeScript
RawDownload
// ---------------------------------------------------------------------------// Vitest globalSetup — starts an in-process PGlite socket server so tests// running in the Cloudflare Workers runtime can connect to a real Postgres// via postgres.js. Port must match DATABASE_URL in vitest.config.ts.// --------------------------------------------------------------------------- import { PGlite } from "@electric-sql/pglite";import { PGLiteSocketServer } from "@electric-sql/pglite-socket";import { drizzle } from "drizzle-orm/pglite";import { migrate } from "drizzle-orm/pglite/migrator";import { dirname, resolve } from "node:path";import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); const PORT = 5434;const MIGRATIONS_FOLDER = resolve(__dirname, "../drizzle"); let db: PGlite | undefined;let server: PGLiteSocketServer | undefined; export default async function setup() {  db = await PGlite.create();  await migrate(drizzle(db), { migrationsFolder: MIGRATIONS_FOLDER });   server = new PGLiteSocketServer({ db, port: PORT, host: "127.0.0.1" });  await server.start();   // eslint-disable-next-line no-console  console.log(`[test-db] PGlite socket server listening on 127.0.0.1:${PORT}`);   return async () => {    await server?.stop();    await db?.close();  };}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t