1e51ef7def
- 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>
32 lines
1.3 KiB
JavaScript
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);
|
|
});
|
|
}
|