const { test, expect } = require('@playwright/test'); const { loginViaForm, clickBottomNav } = require('./helpers'); test.describe('Login-Flow', () => { test.use({ storageState: { cookies: [], origins: [] } }); test('1. Login funktioniert', async ({ page }) => { await loginViaForm(page); await page.screenshot({ path: 'screenshots/01-nach-login.png' }); console.log('Login erfolgreich'); }); }); test('2. Dashboard laedt ohne Fehler', async ({ page }) => { await page.goto('/'); await page.waitForLoadState('networkidle'); await expect(page.locator('.spinner')).toHaveCount(0, { timeout: 10000 }); await page.screenshot({ path: 'screenshots/02-dashboard.png' }); console.log('Dashboard OK'); }); test('3. Erfassen erreichbar', async ({ page }) => { await page.goto('/'); await page.waitForLoadState('networkidle'); await clickBottomNav(page, 'Erfassen'); await page.waitForLoadState('networkidle'); await expect(page).toHaveURL(/\/capture/); await page.screenshot({ path: 'screenshots/03-erfassung.png' }); console.log('Erfassen OK'); }); test('4. Analyse erreichbar', async ({ page }) => { await page.goto('/'); await page.waitForLoadState('networkidle'); await clickBottomNav(page, 'Analyse'); await page.waitForLoadState('networkidle'); await expect(page).toHaveURL(/\/analysis/); await page.screenshot({ path: 'screenshots/04-analyse.png' }); console.log('Analyse OK'); }); test('5. Keine kritischen Console-Fehler', async ({ page }) => { const errors = []; page.on('console', (msg) => { if (msg.type() === 'error') errors.push(msg.text()); }); await page.goto('/'); await page.waitForLoadState('networkidle'); const kritisch = errors.filter( (e) => !e.includes('favicon') && !e.includes('sourceMap') && !e.includes('404') ); if (kritisch.length > 0) { console.log('Console-Fehler:', kritisch.join(', ')); } else { console.log('Keine kritischen Console-Fehler'); } });