import assert from "node:assert/strict"; import fs from "node:fs"; import path from "node:path"; import test from "node:test"; import ts from "typescript"; const repoRoot = path.resolve(import.meta.dirname, "../../.."); const sourcePath = path.join(repoRoot, "web/protocol/worker-fault.ts"); const transpiled = ts.transpileModule(fs.readFileSync(sourcePath, "utf8"), { compilerOptions: { module: ts.ModuleKind.ES2022, target: ts.ScriptTarget.ES2022 }, fileName: sourcePath, reportDiagnostics: true, }); assert.deepEqual(transpiled.diagnostics, []); const moduleUrl = "data:text/javascript;base64," + Buffer.from(transpiled.outputText).toString("base64"); const { createWorkerFault } = await import(moduleUrl); test("M7-08 maps engine and storage crashes to one recoverable fault contract", () => { assert.deepEqual(createWorkerFault("engine", "engine crashed"), { source: "engine", error: { code: "WORKER_TERMINATED", severity: "error", message: "engine crashed", recoverable: true, cause: "engine-worker-fault", }, }); assert.deepEqual(createWorkerFault("storage", "storage crashed"), { source: "storage", error: { code: "WORKER_TERMINATED", severity: "error", message: "storage crashed", recoverable: true, cause: "storage-worker-fault", }, }); });