File
Blob: tests/vitest/cloudflare.ts
| 1 | import path from "node:path"; |
| 2 | |
| 3 | import { cloudflareTest, readD1Migrations } from "@cloudflare/vitest-pool-workers"; |
| 4 | |
| 5 | const testSecrets = { |
| 6 | TESSERA_OIDC_CLIENT_ID: "dab-test", |
| 7 | TESSERA_OIDC_CLIENT_SECRET: "test-tessera-client-secret-deterministic", |
| 8 | DAB_SESSION_SECRET: "test-dab-session-secret-deterministic", |
| 9 | } as const; |
| 10 | |
| 11 | export function cloudflareWorkerPlugin() { |
| 12 | const oidcIssuer = process.env.DAB_TEST_OIDC_ISSUER; |
| 13 | if (!oidcIssuer) { |
| 14 | throw new Error("DAB_TEST_OIDC_ISSUER must be set by vitest.config.ts before creating the worker test pool."); |
| 15 | } |
| 16 | |
| 17 | for (const [key, value] of Object.entries(testSecrets)) { |
| 18 | process.env[key] ??= value; |
| 19 | } |
| 20 | |
| 21 | return cloudflareTest(async () => ({ |
| 22 | main: "./src/worker/index.ts", |
| 23 | remoteBindings: false, |
| 24 | wrangler: { configPath: "./wrangler.jsonc" }, |
| 25 | miniflare: { |
| 26 | bindings: { |
| 27 | LOG_LEVEL: "warn", |
| 28 | CONTROL_PLANE_HOST: "dav.example.com", |
| 29 | SUBJECT_HOST_SUFFIX: ".dav.example.com", |
| 30 | TESSERA_OIDC_ISSUER: oidcIssuer, |
| 31 | TEST_MIGRATIONS: await readD1Migrations(path.join(import.meta.dirname, "../../drizzle/d1")), |
| 32 | ...testSecrets, |
| 33 | MAX_FILE_BYTES: "100000000", |
| 34 | MAX_XML_BODY_BYTES: "1048576", |
| 35 | MAX_CALENDAR_OBJECT_BYTES: "1048576", |
| 36 | MAX_ADDRESS_OBJECT_BYTES: "1048576", |
| 37 | MAX_DAV_DEPTH_INFINITY_NODES: "10000", |
| 38 | MAX_REPORT_RESULTS: "5000", |
| 39 | MAX_RECURRENCE_YEARS: "5", |
| 40 | MAX_RECURRENCE_INSTANCES: "10000", |
| 41 | }, |
| 42 | }, |
| 43 | })); |
| 44 | } |