Files
PaperClipAI/tests/runner-e2e/native-blocker-visible.spec.ts
DottaandPaperclip de487b20d3 Fix blocker browser grading and retain the complete native comparison
Accept the requested marker plus concrete blocker explanation, calibrate contradictory and future-condition replies, and clarify future fixture punctuation. Preserve every original paid failure and label retained-DOM replay separately from live qualification.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 18:08:51 -05:00

29 lines
1.8 KiB
TypeScript

import { expect, test } from "@playwright/test";
import { assertNativeBlockerReply } from "./native-blocker-visible.js";
test("accepts a visible blocker explanation rather than requiring a marker-only reply", async ({ page }) => {
await page.setContent('<div data-testid="reply">Deployment is <strong>blocked</strong>.<br>Release Owner must Grant deployment access. BLOCKED_probe</div>');
await assertNativeBlockerReply(page.getByTestId("reply"), "BLOCKED_probe", 100);
});
test("accepts a future access condition while the task remains blocked", async ({ page }) => {
await page.setContent('<div data-testid="reply">Deployment remains blocked until access is granted. Release Owner must Grant deployment access. BLOCKED_probe</div>');
await assertNativeBlockerReply(page.getByTestId("reply"), "BLOCKED_probe", 100);
});
for (const [name, body] of [
["marker only", "BLOCKED_probe"],
["missing owner", "Blocked. Someone must Grant deployment access. BLOCKED_probe"],
["missing action", "Blocked. Release Owner must take action. BLOCKED_probe"],
["missing reason", "Release Owner: Grant deployment access. BLOCKED_probe"],
["contradictory disposition", "Deployment is not blocked. Release Owner completed Grant deployment access. BLOCKED_probe"],
["resolved blocker", "Deployment is no longer blocked. Release Owner must Grant deployment access. BLOCKED_probe"],
["granted access", "Blocked. Access already granted. Release Owner must Grant deployment access. BLOCKED_probe"],
["duplicate replies", "Blocked. Release Owner must Grant deployment access. BLOCKED_probe</div><div data-testid=reply>BLOCKED_probe"],
]) {
test(`rejects ${name}`, async ({ page }) => {
await page.setContent(`<div data-testid="reply">${body}</div>`);
await expect(assertNativeBlockerReply(page.getByTestId("reply"), "BLOCKED_probe", 100)).rejects.toThrow();
});
}