Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/test-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,8 @@ run does not prove for each one; the taxonomy and cross-repository entries live
info banner, and `GET /v2/user` with a synthetic account. A green run proves the
outcome form renders that clerk name as a read-only signature and does not request a
clerks list, not that the API returns those records or the logged-in staff member's
`verifiedName`. The session is a synthetic unsigned JWT, so a green run also does not
`verifiedName`. The full-page snapshot is the same synthetic dossier. The session is a
synthetic unsigned JWT, so a green run also does not
prove login or token verification.
- **Full-stack guest assign/refund specs SQL-write `transaction.actionSecretHash`.**
`e2e-stack/specs/transactions.spec.ts` (`seedActionSecret`) updates the hash directly. A green run
Expand Down
30 changes: 30 additions & 0 deletions e2e/compliance-call-queue-outcome.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,36 @@ test.describe('Call-queue outcome form signature', () => {
page.getByRole('combobox').filter({ has: page.locator('option', { hasText: SIGNATURE }) }),
).toHaveCount(0);

await expect(page.getByRole('heading', { name: 'User Info' })).toBeVisible();
await expect(page.getByRole('heading', { name: 'Save Outcome' })).toBeVisible();
// The app scroller is overflow-auto inside a h-full root, so Playwright fullPage
// would otherwise clip at the 1400px viewport and drop Save Outcome.
await page.evaluate(() => {
const root = document.getElementById('app-root');
const scroller = root && root.querySelector('.overflow-auto');
if (scroller instanceof HTMLElement) {
scroller.style.overflow = 'visible';
scroller.style.flexGrow = '0';
scroller.style.height = 'auto';
}
if (root instanceof HTMLElement) {
root.style.height = 'auto';
root.style.overflow = 'visible';
}
document.documentElement.style.height = 'auto';
document.body.style.height = 'auto';
document.documentElement.style.overflow = 'visible';
document.body.style.overflow = 'visible';
});
const pageHeight = await page.evaluate(() =>
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
);
await page.setViewportSize({ width: 1280, height: Math.min(Math.max(pageHeight, 1400), 5000) });
await expect(page).toHaveScreenshot('compliance-call-queue-outcome-fullpage.png', {
fullPage: true,
maxDiffPixels: 5000,
});

const form = signatureBlock.locator('xpath=ancestor::div[contains(@class,"rounded-lg")][1]');
await form.scrollIntoViewIfNeeded();
await expect(form).toHaveScreenshot('compliance-call-queue-outcome-signature.png', {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion scripts/handbook/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
},
"compliance-call-queue-outcome": {
"title": "Compliance: Call-Queue-Outcome",
"description": "Outcome-Formular mit der Signatur als verified name des eingeloggten Bearbeiters, ohne Clerks-Auswahlliste."
"description": "Ganze Call-Queue-Detailseite (User Info, Transaktion, Fragen, Save Outcome) und darunter der Ausschnitt des Outcome-Formulars mit der Signatur als verified name des eingeloggten Bearbeiters, ohne Clerks-Auswahlliste."
},
"realunit-compliance": {
"title": "RealUnit Compliance",
Expand Down
Loading