mitai-jinkendo/tests/dev-smoke-test.spec.js
Lars ae7d0ac1d9
Some checks failed
Deploy Development / deploy (push) Successful in 1m11s
Build Test / pytest-backend (push) Failing after 5s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 22s
test: stabilize Playwright smoke and issue-audit against dev
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>
2026-07-25 16:37:36 +02:00

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');
}
});