Fork Horse repository, listed by its owner. Publisher snapshot.

packages/forkhorse-gatekeeper/vitest.local.config.ts

Snapshot at 34e3175

Containing directory

2,447 bytes · typescriptView raw
1import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
2import capnwebValidate from "capnweb-validate/vite";
3import { kCurrentWorker } from "miniflare";
4import { defineConfig } from "vitest/config";
5import { textModules } from "./text-modules.ts";
6import { readFileSync } from "node:fs";
7import { resolve, basename } from "node:path";
8const port = process.env.FH_LOCAL_FIXTURE_PORT;
9if (!port || !/^\d+$/.test(port)) throw new Error("Use test/local/run.ts to start the offline Git fixture.");
10export default defineConfig({
11  resolve: { dedupe: ["capnweb"], alias: { "@gadgets/typed-storage": resolve("../../cloudflare-os/packages/typed-storage/src/index.ts") } },
12  plugins: [{ name: "local-generated-output", enforce: "pre", resolveId(source) {
13    if (source.startsWith("./generated/")) return "\0local-generated:" + basename(source);
14  }, load(id) {
15    if (id.startsWith("\0local-generated:")) {
16      const name = id.slice(17), content = readFileSync(resolve(process.env.FH_LOCAL_GENERATED_DIR!, name), "utf8");
17      return name.endsWith(".txt") ? `export default ${JSON.stringify(content)}` : content;
18    }
19  } }, textModules(), capnwebValidate({ tsconfig: "./tsconfig.local.json" }), cloudflareTest({
20    main: "./test/local/worker.ts",
21    miniflare: {
22      compatibilityDate: "2026-08-04",
23      compatibilityFlags: ["experimental", "nodejs_compat", "allow_irrevocable_stub_storage"],
24      bindings: { BASE_URL: "https://os.fixture.idiot.tax/gatekeeper/forkhorse", PUBLIC_BASE_URL: "https://os.fixture.idiot.tax/" },
25      workerLoaders: { LOADER: {} },
26      durableObjects: {
27        TEST_OVERSEER: { className: "OverseerDurableObject", useSQLite: true },
28        WORKSPACES: { className: "FixtureWorkspace", useSQLite: true },
29        ACCOUNTS: { className: "UserAccount", useSQLite: true }, FORKS: { className: "ForkGatekeeper", useSQLite: true },
30      },
31      serviceBindings: {
32        FIXTURE: { name: kCurrentWorker, entrypoint: "FixtureHarness" }, VENDOR_HTTP: kCurrentWorker,
33        LOCAL_GIT: async (request) => {
34          const url = new URL(request.url);
35          return fetch(`http://127.0.0.1:${port}${url.pathname}`, { method: request.method,
36            headers: request.headers, body: request.body, duplex: "half" } as RequestInit);
37        },
38      },
39    },
40  })],
41  test: { include: ["test/local/*.test.ts"], setupFiles: ["../../cloudflare-os/scripts/assert-workerd.ts"], testTimeout: 30000 },
42});
43