test: AuthLog-Regressionstests (wirft nie, 500-Zeilen-Kappung)
AuthLog.write ist der einzige Aufruf im catch-Pfad des Soft-Logout-Guards; ein Throw dort würde im SDK zu logout()+clear() eskalieren. 4 neue Tests sichern genau das ab (kaputte Plattform, leeres Log, Zeitstempel, Kappung). path_provider_platform_interface als dev_dependency (war schon transitiv). Alle 14 Tests grün auf dem Pi, flutter analyze unverändert. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+40
@@ -13,6 +13,46 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-03 – Review-Nachzügler abgeschlossen + AuthLog-Regressionstests
|
||||
|
||||
**Erledigt:**
|
||||
- **Fable-5-Review vervollständigt (eebf8ae):** Die drei seit Review-Abschluss
|
||||
dazugekommenen erledigten Arbeiten kritisch geprüft und als Punkte (e)–(g) im
|
||||
Review-Abschnitt abgehakt: Unit-Tests 99cde9a (korrekt, Fake-Clients schlagen
|
||||
bei jedem Fremd-Aufruf laut fehl), Doku-Commits 16561bb/566938f (alle
|
||||
Behauptungen gegen Code/pubspec/matrix-6.2.0 verifiziert – Factory-Stellen,
|
||||
Tabellenname `box_inbound_group_session`), Autopilot-Konto-Wechsel bfe5876
|
||||
(kein App-Code, Logik in Ordnung; harmloser False-Positive der
|
||||
Limit-Erkennung dokumentiert). **Kein Befund, keine Code-Änderung nötig.**
|
||||
Damit sind ALLE als erledigt markierten Punkte reviewt.
|
||||
- **`test/auth_log_test.dart` (4 Tests):** `AuthLog` ist die einzige weitere
|
||||
öffentliche Schnittstelle auf dem heiligen Pfad, die headless testbar ist
|
||||
(der Soft-Logout-Guard ruft `AuthLog.write` im catch-Pfad auf – würde es
|
||||
werfen, eskalierte das SDK zu `logout()`+`clear()`). Getestet: write/read
|
||||
werfen NIE, auch wenn die Plattform fehlt (kaputter PathProvider);
|
||||
Platzhalter statt Fehler bei leerem Log; ISO-Zeitstempel pro Zeile;
|
||||
500-Zeilen-Kappung (älteste Einträge fliegen raus, neueste überleben).
|
||||
Dafür `path_provider_platform_interface ^2.1.2` als dev_dependency ergänzt –
|
||||
offizieller Mock-Weg, war schon transitiv im Lockfile, kein neues externes
|
||||
Paket. `flutter test`: **alle 14 Tests grün auf dem Pi**, `flutter analyze`
|
||||
unverändert (1 bekannter Hinweis `chat_provider.dart:42`).
|
||||
|
||||
**Offen/Nächster Schritt:** Unverändert blockiert: Alle offenen ROADMAP-Punkte
|
||||
(M0 SQLCipher, M1 Härtetest, M2 Call-Schicht/State-Management) brauchen PC/GUI
|
||||
oder Bernds Antworten (Call-Pilot, SQLCipher-Priorität) – siehe
|
||||
`docs/PC_TESTPLAN.md` und die Fragen an Bernd weiter unten. Weitere sichere
|
||||
Pi-Testkandidaten sind erschöpft (Rest ist bibliotheksprivat oder braucht
|
||||
Widget-Tests mit gemocktem Matrix-Client – lohnt erst nach dem M2-Modulschnitt
|
||||
mit echten öffentlichen Schnittstellen).
|
||||
|
||||
**Stolperfallen:** `AuthLog` cached sein File-Handle statisch – der Test für
|
||||
„Plattform kaputt" muss deshalb VOR den Tests mit funktionierender Plattform
|
||||
laufen (im Testfile kommentiert). Bei künftigen Tests an Singletons mit
|
||||
statischem Zustand auf Testreihenfolge/Isolate-Grenzen achten (flutter test
|
||||
isoliert pro Datei, nicht pro Test).
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-03 – Erste Unit-Tests: Regressionsnetz für die zwei heiligsten Codepfade
|
||||
|
||||
**Erledigt:** Eine Vorsession hatte (unprotokolliert, Abbruch vor dem Testlauf –
|
||||
|
||||
Reference in New Issue
Block a user