Files
geograsim/.dontDeploy/playwright/tests/stufe1-smoke/glossar-all.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');
const slugs = require('../../fixtures/known-glossar-slugs.json');
/**
* Stufe 1 · Glossar-Slugs
*
* Prüft, dass jeder bekannte Slug
* 1) eine 200-Antwort liefert (kein 404)
* 2) das Glossar-DOM (Begriffs-Titel) tatsächlich rendert
*
* Das ist der Regressionstest gegen den Bug vom 2026-06-10
* (Tooltip-Lib + Klima-2D/3D basePath-Truthy).
*/
// Quote-Optimierung: 266 Slugs sind viel — wir laufen sie parallel.
test.describe.configure({ mode: 'parallel' });
for (const slug of slugs.slugs) {
test(`/${slug}`, async ({ page }) => {
const res = await page.goto(`/glossar?term=${encodeURIComponent(slug)}`);
expect(res.status(), `slug ${slug} antwortet nicht 200`).toBeLessThan(400);
// Glossar-Page rendert eine Tabelle oder eine Detail-Karte mit dem Begriff
const html = await page.content();
// Heuristik: der Slug sollte irgendwo im DOM auftauchen (key_slug oder Titel)
// Wir akzeptieren auch wenn der Begriff selbst (slug→Title-Heuristik) im
// Body-Text vorkommt. Echte Page-Crash würde 5xx liefern.
const bodyText = await page.locator('body').textContent({ timeout: 3000 });
expect(bodyText && bodyText.length, `leerer Body für ${slug}`).toBeGreaterThan(50);
});
}