16 lines
1.1 KiB
TypeScript
16 lines
1.1 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
|
|
test("M13-02D verifies declared script content and invalidates source hash changes", async ({ page }) => {
|
|
await page.goto("/");
|
|
const result = await page.evaluate(() => new Promise<Record<string, unknown>>((resolve, reject) => {
|
|
const worker = new Worker("/src/workers/script-signature-test.worker.ts", { type: "module" });
|
|
worker.onmessage = (event: MessageEvent<Record<string, unknown>>) => { worker.terminate(); resolve(event.data); };
|
|
worker.onerror = (event) => { worker.terminate(); reject(new Error(event.message)); };
|
|
worker.postMessage({});
|
|
}));
|
|
expect(result.valid).toMatchObject({ status: "VERIFIED", code: "SCRIPT_SIGNATURE_VERIFIED", keyId: "key:new", sourceSha256: "a".repeat(64) });
|
|
expect(result.sourceChanged).toMatchObject({ status: "BLOCKED", code: "SCRIPT_SIGNATURE_INVALID", sourceSha256: "d".repeat(64) });
|
|
expect(result.signatureChanged).toMatchObject({ status: "BLOCKED", code: "SCRIPT_SIGNATURE_INVALID" });
|
|
expect(result.revoked).toMatchObject({ status: "BLOCKED", code: "SCRIPT_POLICY_DENIED" });
|
|
});
|