Skip to content
File

Blob: tests/vitest/cloudflare.ts

typescript43 lines
1import { fileURLToPath, URL } from "node:url";
2 
3import { cloudflareTest, readD1Migrations } from "@cloudflare/vitest-pool-workers";
4 
5const TEST_AI_MODE: string = "mock";
6const d1MigrationsPath = fileURLToPath(new URL("../../drizzle/d1", import.meta.url));
7 
8export function cloudflareWorkerPlugin() {
9 return cloudflareTest(async () => {
10 const d1Migrations = await readD1Migrations(d1MigrationsPath);
11 
12 return {
13 main: "./src/worker/index.ts",
14 remoteBindings: TEST_AI_MODE === "workers-ai",
15 wrangler: { configPath: "./wrangler.jsonc" },
16 miniflare: {
17 compatibilityDate: "2026-03-01",
18 assets: {
19 directory: "./tests/assets",
20 },
21 bindings: {
22 LOG_LEVEL: "warn",
23 ALLOWED_ORIGINS: "http://127.0.0.1,http://localhost,https://bland.test",
24 JWT_SECRET: "test-jwt-secret-deterministic-value",
25 TESSERA_OIDC_ISSUER: "https://tessera.test",
26 TESSERA_OIDC_CLIENT_ID: "bland-test",
27 TESSERA_OIDC_CLIENT_SECRET: "test-tessera-client-secret-deterministic",
28 SENTRY_DSN: "",
29 BLAND_AI_MODE: TEST_AI_MODE,
30 BLAND_AI_OPENAI_ENDPOINT: "",
31 BLAND_AI_OPENAI_API_KEY: "",
32 BLAND_AI_OPENAI_CHAT_MODEL: "",
33 BLAND_AI_OPENAI_SUMMARIZE_MODEL: "",
34 BLAND_AI_WORKERS_CHAT_MODEL: "",
35 BLAND_AI_WORKERS_SUMMARIZE_MODEL: "",
36 PUBLISHED_SITE_DOMAIN: "sites.test",
37 TEST_MIGRATIONS: d1Migrations,
38 },
39 },
40 };
41 });
42}