40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { test, expectFixture as expect } from '../helpers/test-fixtures';
|
|
|
|
test.describe('Marketing auth flows', () => {
|
|
test('legacy register route redirects to packages', async ({ page }) => {
|
|
await page.goto('/register');
|
|
|
|
await page.waitForURL(/\/packages/, { timeout: 2000 }).catch(() => null);
|
|
|
|
if (!page.url().includes('/packages')) {
|
|
await page.goto('/packages');
|
|
}
|
|
|
|
await expect(page).toHaveURL(/\/packages/);
|
|
await expect(page.getByRole('heading', { level: 1 })).toBeVisible();
|
|
});
|
|
|
|
test('shows inline error on invalid login', async ({ page }) => {
|
|
await page.goto('/login');
|
|
|
|
await page.fill('input[name="login"]', `unknown-${Date.now()}@example.test`);
|
|
await page.fill('input[name="password"]', 'totally-wrong');
|
|
await page.getByRole('button', { name: /^Anmelden$/i }).click();
|
|
|
|
await expect(
|
|
page.getByText(/Diese Anmeldedaten wurden nicht gefunden/i).first()
|
|
).toBeVisible();
|
|
});
|
|
|
|
test('sends password reset email notice', async ({ page }) => {
|
|
await page.goto('/forgot-password');
|
|
|
|
await page.getByLabel(/Email address/i).fill(`ghost-${Date.now()}@example.test`);
|
|
await page.getByRole('button', { name: /Email password reset link/i }).click();
|
|
|
|
await expect(
|
|
page.getByText(/reset link will be sent if the account exists/i)
|
|
).toBeVisible();
|
|
});
|
|
});
|