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:
@@ -70,4 +70,16 @@ describe('login page', () => {
|
|||||||
.element(page.getByRole('link', { name: /passwort vergessen/i }))
|
.element(page.getByRole('link', { name: /passwort vergessen/i }))
|
||||||
.toHaveAttribute('href', '/forgot-password');
|
.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();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user