Beide waren lege placeholders ('Epic 1 - Placeholder', 'Not designed yet').
Sidebar-items eruit; login-tests gebruiken /epd/agenda als voorbeeld van
een beveiligde route.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
// These tests run WITHOUT storageState (they test the login UI itself)
|
|
test.use({ storageState: { cookies: [], origins: [] } });
|
|
|
|
test.describe('Login flow', () => {
|
|
test('toont de loginpagina correct', async ({ page }) => {
|
|
await page.goto('/login');
|
|
|
|
await expect(page.locator('h2')).toContainText('Welkom terug');
|
|
await expect(page.locator('#email')).toBeVisible();
|
|
await expect(page.locator('#password')).toBeVisible();
|
|
await expect(page.locator('button[type="submit"]')).toBeVisible();
|
|
});
|
|
|
|
test('toont foutmelding bij verkeerde inloggegevens', async ({ page }) => {
|
|
await page.goto('/login');
|
|
|
|
await page.fill('#email', 'verkeerd@email.nl');
|
|
await page.fill('#password', 'foutWachtwoord123');
|
|
await page.click('button[type="submit"]');
|
|
|
|
// Wait for error message
|
|
await expect(page.locator('text=onjuist')).toBeVisible({ timeout: 8_000 });
|
|
});
|
|
|
|
test('demo login knop is zichtbaar en werkt', async ({ page }) => {
|
|
await page.goto('/login');
|
|
|
|
const demoButton = page.getByRole('button', { name: /Demo Account Proberen/i });
|
|
await expect(demoButton).toBeVisible();
|
|
|
|
await demoButton.click();
|
|
|
|
// Should redirect to EPD after demo login
|
|
await page.waitForURL(/\/epd\//, { timeout: 10_000 });
|
|
});
|
|
|
|
test('redirect naar EPD na succesvol inloggen', async ({ page }) => {
|
|
await page.goto('/login');
|
|
|
|
await page.fill('#email', 'demo@mini-ecd.demo');
|
|
await page.fill('#password', 'Demo2024!');
|
|
await page.click('button[type="submit"]');
|
|
|
|
await page.waitForURL(/\/epd\//, { timeout: 10_000 });
|
|
expect(page.url()).toMatch(/\/epd\//);
|
|
});
|
|
|
|
test('beveiligde route stuurt door naar login', async ({ page }) => {
|
|
await page.goto('/epd/agenda');
|
|
|
|
await page.waitForURL('/login**', { timeout: 5_000 });
|
|
expect(page.url()).toContain('/login');
|
|
});
|
|
});
|