test(login): add browser component test for rate-limited login UI state

Renders LoginPage with form.rateLimited=true and asserts that the
role="alert" div (clock icon + error message) is visible in the browser.
Previously only the form action's rateLimited=true return value was tested;
now the rendered UI is also verified.

Addresses Sara Concern 4 / Elicit open question from PR #617 review.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-18 22:32:07 +02:00
parent 778402fec7
commit 24c85c29e4

View File

@@ -70,4 +70,16 @@ describe('login page', () => {
.element(page.getByRole('link', { name: /passwort vergessen/i }))
.toHaveAttribute('href', '/forgot-password');
});
it('shows rate-limit alert with clock icon when rateLimited is true', async () => {
render(LoginPage, {
props: {
data: { registered: false },
form: { error: 'Zu viele Anmeldeversuche.', rateLimited: true }
}
});
await expect.element(page.getByRole('alert')).toBeVisible();
await expect.element(page.getByText('Zu viele Anmeldeversuche.')).toBeVisible();
});
});