Files
workinf_Blender_Wasm/web/tests/e2e/nanovdb-opfs-restart.spec.ts
mes123456 0fe8d2bb56
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

26 lines
1.4 KiB
TypeScript

import { expect, test } from "@playwright/test";
test("M8-14 Worker restart restores the OPFS manifest without trusting resident pages", async ({ page }) => {
await page.goto("/");
const run = (action: "prepare" | "reopen", state?: unknown): Promise<any> => page.evaluate(({ action, state }) => new Promise<any>((resolve, reject) => {
const worker = new Worker("/src/workers/nanovdb-opfs-restart-test.worker.ts", { type: "module" });
worker.onmessage = (event) => { worker.terminate(); event.data.error ? reject(new Error(event.data.error)) : resolve(event.data); };
worker.onerror = (event) => { worker.terminate(); reject(new Error(event.message)); };
worker.postMessage({ action, state });
}), { action, state });
const prepared = await run("prepare");
const reopened = await run("reopen", {
projectId: prepared.projectId,
bundleSha256: prepared.bundleSha256,
claimedResidentPages: prepared.claimedResidentPages,
});
expect(prepared.residentBeforeRestart).toEqual([0]);
expect(reopened.manifestSha256).toBe(prepared.bundleSha256);
expect(reopened.claimedResidentPages).toEqual([0]);
expect(reopened.residentBeforeRestore).toEqual([]);
expect(reopened.residentAfterRestore).toEqual([0]);
expect(reopened.pageBytes).toBe(64 * 1024);
expect(reopened.tamperedError).toContain("NANOVDB_HASH_MISMATCH");
expect(reopened.residentAfterTamperedRestore).toEqual([]);
});