feat(durable): workerd tests for Durable Object hosting

Runs the storage conformance suite, the schema migration, an alarm-woken sleep across an eviction, and a
turn recovered through the recovery alarm in workerd via @cloudflare/vitest-plugin (npm run test:workers).

fix(durable): decline background timers in Cloudflare Workers. With nodejs_compat, timers have an unref(),
so the idle-memory timers were armed and a pending one kept a Durable Object from hibernating or being evicted.
This commit is contained in:
Mario Zechner 2026-10-17 23:02:48 +00:00
parent f75b3240ab
commit ea7c648430
15 changed files with 1439 additions and 13 deletions

View file

@ -1,5 +1,5 @@
import { fileURLToPath } from "node:url";
import { defineConfig } from "vitest/config";
import { configDefaults, defineConfig } from "vitest/config";
const durableSrcIndex = fileURLToPath(new URL("./src/index.ts", import.meta.url));
const durableSrcTesting = fileURLToPath(new URL("./src/testing/index.ts", import.meta.url));
@ -7,6 +7,8 @@ const durableSrcTesting = fileURLToPath(new URL("./src/testing/index.ts", import
export default defineConfig({
test: {
environment: "node",
// Run in workerd by their own config: `npm run test:workers`.
exclude: [...configDefaults.exclude, "test-workers/**"],
setupFiles: ["./test/setup-document-retention.ts"],
},
resolve: {