Fix nav selectors (Erfassen), shared auth via global-setup to avoid login rate limits, and desktop sidebar viewport handling. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
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');
|
|
}
|
|
});
|