Skip to content
Cloudflare Docs

Wrangler's unstable_startWorker()

If you do not want to use Vitest, consider using Wrangler's unstable_startWorker() API. This API exposes the internals of Wrangler's dev server, and allows you to customise how it runs. Compared to using Miniflare directly for testing, you can pass in a Wrangler configuration file, and it will automatically load the configuration for you.

This example uses node:test, but should apply to any testing framework:

import assert from "node:assert";
import test, { after, before, describe } from "node:test";
import { unstable_startWorker } from "wrangler";
describe("worker", () => {
let worker;
before(async () => {
worker = await unstable_startWorker({ config: "wrangler.json" });
});
test("hello world", async () => {
assert.strictEqual(
await (await worker.fetch("http://example.com")).text(),
"Hello world",
);
});
after(async () => {
await worker.dispose();
});
});