import { expect, test } from "@playwright/test"; test("M13-02E grants only explicitly declared permissions", async ({ page }) => { await page.goto("/"); const result = await page.evaluate(() => new Promise>((resolve, reject) => { const worker = new Worker("/src/workers/script-permission-policy-test.worker.ts", { type: "module" }); worker.onmessage = (event: MessageEvent>) => { worker.terminate(); resolve(event.data); }; worker.onerror = (event) => { worker.terminate(); reject(new Error(event.message)); }; worker.postMessage({}); })); expect(result.defaultGrant).toMatchObject({ status: "ALLOWED", granted: [] }); expect(result.declaredGrant).toMatchObject({ status: "ALLOWED", granted: ["READ_MAIN"] }); expect(result.escalation).toMatchObject({ status: "BLOCKED", code: "SCRIPT_POLICY_DENIED", granted: [] }); expect(result.unknownRequest).toMatchObject({ status: "BLOCKED", code: "SCRIPT_POLICY_DENIED" }); expect(result.duplicateRequest).toMatchObject({ status: "BLOCKED", code: "SCRIPT_POLICY_DENIED" }); expect(result.unknownDeclaration).toBe("SCRIPT_POLICY_DENIED"); });