Aufraeumarbeiten: ESLint, DOM-Verschachtelung, eigene Testwehr
ESLint hatte keine Konfiguration — das Skript "npm run lint" pruefte nichts. Jetzt Flat Config ohne Formatierungsregeln, dafuer mit den Regeln, die die Fehler dieses Projekts gemeldet haetten. Er hat gleich zwei gefunden, die niemand gesucht hatte. Das Badge rendert ein span statt eines div. Damit ist die Meldung "div cannot be a descendant of p" weg, die seit Phase 3 auf der Einsatzseite stand — sie ist der klassische Ausloeser fuer einen Hydration-Fehler. Die E2E-Tests laufen gegen eine eigene Wehr. Nach fuenf Phasen standen in der Beispielwehr 120 Atemschutz-Ueberwachungen statt einer und 115 Geraete statt 45; bei jedem Lauf aenderten sich alle Bildschirmfotos. Der Bestand ist einmal zurueckgesetzt, npm run db:test-reset baut die Testwehr neu auf. Behoben nebenbei: - Die Fehlerflaeche der Karte konnte nie etwas anzeigen. - Zwei useMemo der Lagekarte rechneten bei jedem Rendern neu. - tests/e2e war vom Typecheck ausgenommen und liess einen doppelt deklarierten Bezeichner durch. Closes #10 Closes #11 Closes #12 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8081131eb7
commit
7196c7110c
+49
-1
@@ -8,7 +8,55 @@ Die Regeln dazu stehen in [docs/VERSIONIERUNG.md](docs/VERSIONIERUNG.md).
|
||||
|
||||
## [Unveröffentlicht]
|
||||
|
||||
Nächster Schritt ist Phase 9 (Kassenverwaltung).
|
||||
Aufräumarbeiten vor Phase 9. Drei Punkte, die sich über mehrere Phasen
|
||||
angesammelt hatten und in jeder Phase Zeit gekostet haben.
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **ESLint** hat endlich eine Konfiguration (`eslint.config.mjs`, Flat Config).
|
||||
Bis dahin gab es das Skript `npm run lint`, aber nichts, was es hätte prüfen
|
||||
können — ein Werkzeug, das aussieht, als prüfe es etwas, und nichts prüft,
|
||||
ist schlechter als gar keines. Bewusst **ohne** Formatierungsregeln: die
|
||||
macht Prettier. Dazu `npm run lint:fix`.
|
||||
- **Eine eigene Wehr für die E2E-Tests.** `npm run db:test-reset` legt
|
||||
`ff-teststelle` neu an — vollständig, mit denselben Beispieldaten, aber unter
|
||||
eigener Kennung. Ein Riegel im Skript bricht ab, wenn die Testkennung mit der
|
||||
der Beispielwehr übereinstimmt.
|
||||
- `tests/e2e/wehr.ts` — Zugangsdaten und Anmeldung an einer Stelle statt
|
||||
achtmal wortgleich in acht Dateien. Schlägt die Anmeldung fehl, sagt die
|
||||
Meldung, dass die Testwehr fehlt, statt zweihundertmal „Timeout".
|
||||
|
||||
### Behoben
|
||||
|
||||
- **Die E2E-Tests schrieben in die Beispielwehr.** Nach fünf Phasen standen
|
||||
dort 120 Atemschutz-Überwachungen statt einer, 115 Geräte statt 45 und
|
||||
39 Einsätze statt 8. Zweimal fielen Tests aus, weil ein gesuchter Eintrag von
|
||||
Seite 1 gerutscht war; bei jedem Lauf unterschieden sich alle 72
|
||||
Bildschirmfotos. Der Bestand ist einmal zurückgesetzt, die Tests laufen
|
||||
jetzt gegen die eigene Wehr.
|
||||
- **`<div>` in einem `<p>` auf der Einsatzseite** — die Meldung stand seit
|
||||
Phase 3 in der Konsole und ist der klassische Auslöser für einen
|
||||
Hydration-Fehler. Die Wurzel war das `Badge`: es rendert jetzt ein `<span>`
|
||||
statt eines `<div>`. Ein Abzeichen ist Fließtext-Inhalt, und die Darstellung
|
||||
ändert sich dadurch nicht.
|
||||
- **Die Fehlerfläche der Karte konnte nie etwas anzeigen** — der Zustand
|
||||
dahinter wurde nirgends gesetzt. Eine gescheiterte Abfrage sah damit aus wie
|
||||
„keine Hydranten vorhanden". Gefunden hat das der neue Linter.
|
||||
- **Die Lagekarte rechnete bei jedem Rendern neu.** Ein `?? []` erzeugte jedes
|
||||
Mal ein neues leeres Feld und machte damit zwei `useMemo` wirkungslos — bei
|
||||
einer Karte mit dreißig Elementen und einem Ereignisstrom im Zwei-Sekunden-
|
||||
Takt kein akademischer Punkt.
|
||||
- Deutsche Anführungszeichen in vier Ansichten schlossen mit einem geraden
|
||||
Zoll-Zeichen statt mit dem typografischen.
|
||||
- Unbenutzte Importe in fünf Dateien.
|
||||
|
||||
### Geändert
|
||||
|
||||
- `npm run lint` ruft jetzt `eslint .` statt des in Next 15.5 abgekündigten
|
||||
`next lint`.
|
||||
- **`tests/e2e` ist nicht mehr vom Typecheck ausgenommen.** Die Ausnahme hat
|
||||
beim Umbau einen doppelt deklarierten Bezeichner durchgelassen, den erst der
|
||||
Testlauf gemeldet hat — `npx tsc --noEmit` hatte geschwiegen.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user