Files
wehub-resource-sync 70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:11 +08:00

63 lines
1.7 KiB
TypeScript

import dedent from "ts-dedent";
import { test } from "./helpers";
test(
"accepts wrangler config with `exports`",
{ timeout: 60_000 },
async ({ expect, seed, vitestRun }) => {
await seed({
"vitest.config.mts": dedent /* javascript */ `
import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
export default {
plugins: [
cloudflareTest({
main: "./index.ts",
wrangler: { configPath: "./wrangler.jsonc" },
}),
],
test: { testTimeout: 90_000 },
};
`,
"wrangler.jsonc": dedent`
{
"name": "do-exports",
"main": "./index.ts",
"compatibility_date": "2025-12-02",
"compatibility_flags": ["nodejs_compat"],
"durable_objects": {
"bindings": [
{ "name": "DO", "class_name": "MyDurableObject" }
]
},
"exports": {
"MyDurableObject": { "type": "durable-object", "storage": "sqlite" }
}
}
`,
"index.ts": dedent /* javascript */ `
import { DurableObject } from "cloudflare:workers";
export class MyDurableObject extends DurableObject {
ping() { return "pong"; }
}
export default {
async fetch() { return new Response("ok"); },
};
`,
"index.test.ts": dedent /* javascript */ `
import { env, runInDurableObject } from "cloudflare:test";
import { it, expect } from "vitest";
it("starts the pool and exercises an exports-declared DO", async () => {
const id = env.DO.idFromName("test");
const stub = env.DO.get(id);
const result = await runInDurableObject(stub, (instance) => instance.ping());
expect(result).toBe("pong");
});
`,
});
const result = await vitestRun();
expect(await result.exitCode).toBe(0);
}
);