Files
geograsim/.dontDeploy/playwright/tests/stufe2-flows/teacher-cockpit.spec.js
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

32 lines
1.3 KiB
JavaScript

// @ts-check
const { test, expect } = require('@playwright/test');
/**
* Stufe 2 · Teacher-Cockpit (Live-Tab) Smoke
*
* Prüft dass die /teacher-Seite lädt UND dass der Cockpit-API-Endpoint
* existiert. Echtes Login + Klassen-Wahl braucht Test-Accounts (TODO).
*/
test('Teacher-Page lädt + zeigt Login-Form ODER ist eingeloggt', async ({ page }) => {
const res = await page.goto('/teacher');
expect(res.status()).toBe(200);
await page.waitForTimeout(500);
// Entweder eingeloggt (Tabs sichtbar) oder Login-Form
const hasTabs = await page.locator('.tab').count();
const hasLogin = await page.locator('input[type=email], input[type=password]').count();
expect(hasTabs + hasLogin, 'weder Tabs noch Login-Form auf /teacher').toBeGreaterThan(0);
});
test('Cockpit-API antwortet ohne Auth mit 401 (nicht 500)', async ({ request }) => {
// Ohne Cookie sollte 401 kommen, NICHT 500. Das sichert dass der
// Endpoint zwar geschützt aber nicht crashed.
const r = await request.get('/api/live?class_id=99&cockpit=1&range=week');
expect(r.status(), 'Cockpit-API crashed (5xx)').toBeLessThan(500);
});
test('Results-Fleiss-API antwortet ohne Auth ohne 5xx', async ({ request }) => {
const r = await request.get('/api/results?class_id=99&view=fleiss&range=week');
expect(r.status()).toBeLessThan(500);
});