41 lines · 1.7 KB · TypeScript
RawDownload
import { defineConfig } from "vitest/config"; // One project per target. Same scenario files, different running instance:// `vitest run --project cloud` / `--project selfhost` (or both, the default).// Each project's globalsetup boots that app's OWN dev server (or attaches to// E2E_<TARGET>_URL). Scenarios are isolated by fresh identities, not resets.const project = (name: string, overrides: Record<string, unknown> = {}) => ({  test: {    name,    include: ["scenarios/**/*.test.ts", `${name}/**/*.test.ts`],    env: { E2E_TARGET: name },    globalSetup: [`./setup/${name}.globalsetup.ts`],    testTimeout: 180_000,    hookTimeout: 120_000,    ...overrides,  },}); export default defineConfig({  test: {    projects: [      // PGlite's socket server is effectively single-connection; parallel test      // files (each fanning out per-request postgres sockets) crash it. Run      // files serially — swap PGlite for real Postgres if wall-clock matters.      project("cloud", { fileParallelism: false }),      // selfhost identities are the shared bootstrap admin for now — run files      // serially until per-test invite-signup isolation lands.      project("selfhost", { fileParallelism: false }),      // The Electron desktop app. Only desktop/** scenarios — the desktop      // target provides none of the standard surfaces (each scenario      // launches its own app via Playwright's electron driver), so running      // the cross-target suite here would just emit a page of skips. Needs      // a display; not part of the default `npm run test` chain.      project("desktop", {        include: ["desktop/**/*.test.ts"],        fileParallelism: false,        testTimeout: 300_000,      }),    ],  },});

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