import { fileURLToPath, URL } from "node:url"; import { defineConfig, defineProject } from "vitest/config"; import { OIDCMockProvider } from "@mongodb-js/oidc-mock-provider"; import { cloudflareWorkerPlugin } from "./tests/vitest/cloudflare"; const srcDirectory = fileURLToPath(new URL("./src", import.meta.url)); const testsDirectory = fileURLToPath(new URL("./tests", import.meta.url)); const aliases = { "@": srcDirectory, "@tests": testsDirectory, }; const oidcProvider = await OIDCMockProvider.create({ port: 0, hostname: "localhost", getTokenPayload(metadata) { return { expires_in: 3600, payload: { sub: "tessera-sub-phase1", email: "phase1@example.test", name: "Phase One Tester", }, customIdTokenPayload: { nonce: metadata.nonce, }, skipRefreshToken: true, }; }, }); oidcProvider.httpServer.unref(); process.env.DAB_TEST_OIDC_ISSUER = oidcProvider.issuer; export default defineConfig({ test: { projects: [ defineProject({ resolve: { alias: aliases }, test: { name: "worker-unit", include: ["tests/worker/**/*.test.ts"], exclude: ["tests/worker/**/*.workers.test.ts"], }, }), defineProject({ plugins: [cloudflareWorkerPlugin()], resolve: { alias: aliases }, test: { name: "worker-runtime", isolate: false, fileParallelism: false, sequence: { groupOrder: 1 }, include: ["tests/worker/**/*.workers.test.ts"], setupFiles: ["./tests/setup/worker.ts"], testTimeout: 30_000, }, }), ], }, });