Files
workinf_Blender_Wasm/web/tests/e2e/nanovdb-page-resume.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

21 lines
1.2 KiB
TypeScript

import { expect, test } from "@playwright/test";
test("M8-13 resumes a feedback page from the exact interrupted byte offset", async ({ page }) => {
await page.goto("/");
const result = await page.evaluate(() => new Promise<any>((resolve, reject) => {
const worker = new Worker("/src/workers/nanovdb-page-resume-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({});
}));
expect(result.dispatch).toMatchObject({ status: "ACCEPTED", renderRevision: 17, requestedPageIds: [0], requestedCount: 1, errorCode: null });
expect(result.ranges.length).toBeGreaterThanOrEqual(2);
expect(result.ranges[0]).toMatch(/^bytes=\d+-\d+$/);
expect(result.resumedRangeStart).toBe(Number(result.ranges[0].match(/^bytes=(\d+)-/)?.[1]) + 4096);
expect(result.ifRanges[0]).toBe("");
expect(result.ifRanges[1]).toMatch(/^"vdb-/);
expect(result.consumedBytes).toBe(result.expectedBytes);
expect(result.consumedSha256).toBe(result.expectedSha256);
expect(result.coordinator).toEqual({ pendingPages: 0, subscribers: 0, pageIds: [] });
});