rework of the e2e test suites
This commit is contained in:
58
tests/ui/auth/auth-flows.test.ts
Normal file
58
tests/ui/auth/auth-flows.test.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { test, expectFixture as expect } from '../helpers/test-fixtures';
|
||||
|
||||
test.describe('Marketing auth flows', () => {
|
||||
test('registers a new account and captures welcome email', async ({ page, clearTestMailbox, getTestMailbox }) => {
|
||||
await clearTestMailbox();
|
||||
|
||||
const stamp = Date.now();
|
||||
const email = `playwright-register-${stamp}@example.test`;
|
||||
const username = `playwright-${stamp}`;
|
||||
const password = 'Password123!';
|
||||
|
||||
await page.goto('/register');
|
||||
|
||||
await page.getByLabel(/Vorname/i).fill('Playwright');
|
||||
await page.getByLabel(/Nachname/i).fill('Tester');
|
||||
await page.getByLabel(/^E-Mail/i).fill(email);
|
||||
await page.getByLabel(/Telefon/i).fill('+49123456789');
|
||||
await page.getByLabel(/Adresse/i).fill('Teststr. 1, 12345 Berlin');
|
||||
await page.getByLabel(/Username/i).fill(username);
|
||||
await page.getByLabel(/^Passwort$/i).fill(password);
|
||||
await page.getByLabel(/Passwort bestätigen/i).fill(password);
|
||||
await page.locator('#privacy_consent').check();
|
||||
|
||||
await page.getByRole('button', { name: /^Registrieren$/i }).click();
|
||||
|
||||
await expect.poll(() => page.url()).not.toContain('/register');
|
||||
|
||||
const messages = await getTestMailbox();
|
||||
const hasWelcome = messages.some((message) =>
|
||||
message.to.some((recipient) => recipient.email === email)
|
||||
);
|
||||
|
||||
expect(hasWelcome).toBe(true);
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user