Files
workinf_Blender_Wasm/web/tests/e2e/shader-capability-block.spec.ts
mes123456 0fe8d2bb56
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

31 lines
1.7 KiB
TypeScript

import { expect, test } from "@playwright/test";
import fs from "node:fs";
import path from "node:path";
const root = path.resolve(import.meta.dirname, "../../..");
const expected = JSON.parse(fs.readFileSync(path.join(root, "tests/golden/M10-10/shader-capability-block.json"), "utf8"));
test("M10-10 returns a stable block for every unknown Shader node", async ({ page }) => {
await page.goto("/");
const result = await page.evaluate(async () => {
const { WebEngineClient } = await import("/src/engine-client/WebEngineClient.ts");
const client = new WebEngineClient({ timeoutMs: 30_000 });
await client.init();
const first = await client.queryRenderCapability({ kind: "ARBITRARY_SHADER", nodeTypes: ["VORONOI", "CUSTOM_OSL"] });
const second = await client.queryRenderCapability({ kind: "ARBITRARY_SHADER", nodeTypes: ["CUSTOM_OSL", "VORONOI"] });
client.terminate();
return {
first: { taskId: first.taskId, capability: first.capability, status: first.status, code: first.issues[0]?.code, recoverable: first.issues[0]?.recoverable, message: first.issues[0]?.message },
second: { taskId: second.taskId, capability: second.capability, status: second.status, code: second.issues[0]?.code, recoverable: second.issues[0]?.recoverable, message: second.issues[0]?.message },
};
});
expect(result.first.taskId).toBe("PBR-012");
expect(result.first.capability).toBe(expected.capability);
expect(result.first.status).toBe(expected.status);
expect(result.first.code).toBe(expected.errorCode);
expect(result.first.recoverable).toBe(expected.recoverable);
expect(result.first.message).toContain("VORONOI");
expect(result.first.message).toContain("CUSTOM_OSL");
expect(result.second).toEqual(result.first);
});