Flutter-Tests: ApiClient, Offline-Queue, Login-/Objektliste-Widgets
CI / backend-tests (push) Successful in 1m5s
CI / frontend-build (push) Successful in 18s

ApiClient nimmt jetzt einen injizierbaren http.Client entgegen (Testbarkeit,
kein Verhaltensunterschied im Betrieb). Tests mocken ihn mit mocktail statt
echter Netzwerkaufrufe. offline_queue_test.dart nutzt sqflite_common_ffi
(reines Dart) für die Queue-Logik ohne Gerät/Emulator: Erfolg entfernt
Eintrag, Netzwerkfehler bleibt "wartet", 4xx setzt "fehler" ohne Auto-Retry.
Dazu Widget-Tests für Login-Flow und Objektliste-Suchfilter.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-04 18:38:17 +02:00
co-authored by Claude Sonnet 5
parent c68d39b45f
commit 0909dacf2b
9 changed files with 347 additions and 10 deletions
+11 -3
View File
@@ -54,7 +54,15 @@ Reconnect (`connectivity_plus`) und periodisch alle 15s - gleiches Muster wie
`KontrollScreen` gleicht per 2s-Reconciliation-Loop den Anzeigezustand mit der
Queue ab, Abschluss ist gesperrt, solange Einträge offen sind.
## Bewusst noch nicht umgesetzt (Unterschied zur React-PWA)
## Tests
- Keine Tests (Flutter-Widget-/Integrationstests) - Sprintplan sieht Testphase 4
primär für die PWA vor (Playwright); Android-Testabdeckung ist noch offen.
```bash
flutter test
```
`http.Client` ist per Konstruktor injizierbar (`ApiClient(httpClient: ...)`), Tests
mocken ihn mit `mocktail` statt echten Netzwerkaufrufen - kein Server/Emulator nötig.
`test/offline_queue_test.dart` nutzt `sqflite_common_ffi` (reines Dart, keine
Plattform-Channels), um die sqflite-Queue ohne Gerät/Emulator zu testen. Deckt ab:
`ApiClient` (Login, Token-Header, Fehlerfälle), Offline-Queue (Erfolg/Netzwerkfehler/
4xx-kein-Retry), Login-Screen und Objektliste-Suche als Widget-Tests.