Backlog: uebersprungenen Widget-Test und offene Punkte festhalten
Neu: BACKLOG.md. Haelt fest, was bewusst zurueckgestellt wurde, damit es nicht stillschweigend liegen bleibt. - song_detail_sheet_test.dart haengt und ist uebersprungen: inklusive der vier bereits widerlegten Verdachtsmomente (runWithClient erreicht das Sheet, drift unter testWidgets, einzelne Provider) und dem naechsten Schritt. Fachlich deckt metadaten_uebernahme_test.dart den Zweck ab. - Kein Wiederherstellen einzeln geloeschter Titel (Papierkorb am Server waere denkbar, bewusst nicht gebaut). Das TODO im Test verweist jetzt auf die Datei. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FpPu4nuKjKKeX1RpdDeX81
This commit is contained in:
co-authored by
Claude Opus 5
parent
c7a7a7c458
commit
5c9bfe2001
+54
@@ -0,0 +1,54 @@
|
||||
# Backlog
|
||||
|
||||
Bekannte offene Punkte, die bewusst zurückgestellt wurden. Nichts hier ist
|
||||
vergessen — es ist entschieden, es später zu machen. Erledigtes wandert raus
|
||||
(die Geschichte steht im CHANGELOG).
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Widget-Test `song_detail_sheet_test.dart` hängt (übersprungen)
|
||||
|
||||
**Stand:** 2026-08-21 · **Auswirkung:** nur Tests, die App ist nicht betroffen
|
||||
|
||||
Der Test `Übernahme eines Online-Vorschlags setzt metadataEdited` bleibt beim
|
||||
Aufbau des Widget-Baums hängen und kommt **nie** zurück — auch nach 13+
|
||||
Minuten kein Abbruch. Da `flutter test` alle Dateien in einem Lauf abarbeitet,
|
||||
blockierte er den **gesamten** Testlauf. Er ist deshalb mit `skip: true` und
|
||||
einem TODO im Code markiert; der Lauf ist damit wieder in ~20 Sekunden durch.
|
||||
|
||||
**Fachlich ist nichts ungeprüft:** Was der Test absichern sollte, prüft
|
||||
`test/library/metadaten_uebernahme_test.dart` ohne Widgets — inklusive der
|
||||
Regel, dass eine übernommene Online-Korrektur `metadataEdited` setzt und
|
||||
den nächsten Bibliotheks-Scan damit überlebt.
|
||||
|
||||
**Was schon eingegrenzt ist:**
|
||||
|
||||
| Verdacht | Ergebnis |
|
||||
|---|---|
|
||||
| `http.runWithClient` erreicht den State im Modal-Sheet nicht | ❌ widerlegt — eigene Sonde zeigt `MockClient` auch im Sheet |
|
||||
| drift unter `testWidgets` blockiert (fehlendes `runAsync`) | ❌ widerlegt — `upsertSongs` + `watchSongs().first` laufen durch |
|
||||
| Einer der Provider blockiert `pumpWidget` | ❌ widerlegt — `MeloDb`, `CategoryService`, `AppSettings` einzeln geprüft |
|
||||
| Zusammenspiel `showModalBottomSheet` + Providerbaum | ⏳ offen — der Hänger tritt zwischen `pumpWidget` und dem ersten `tap` auf |
|
||||
|
||||
**Nächster Schritt:** Den Testkörper schrittweise abspecken (Providerbaum
|
||||
minimieren, Sheet durch eine normale Route ersetzen) bis der Hänger
|
||||
verschwindet — die letzte entfernte Zutat ist die Ursache. Ein
|
||||
`tester.pumpWidget(const SizedBox())` mit anschließendem `pump()` am Testende
|
||||
hat bei `online_screen_test.dart` einen verwandten Aufräum-Timer von drift
|
||||
gelöst und ist einen Versuch wert.
|
||||
|
||||
---
|
||||
|
||||
## 📥 Kein Wiederherstellen gelöschter Titel
|
||||
|
||||
**Stand:** 2026-08-21 · **Auswirkung:** Datenverlust im Fehlerfall möglich
|
||||
|
||||
Löschungen wirken über den Geräte-Abgleich in beide Richtungen. Gegen
|
||||
versehentliche Massenlöschung schützt die Sicherheitsbremse
|
||||
(`loeschBremseGreift`), aber eine **einzelne** irrtümliche Löschung ist
|
||||
endgültig: Datei und Navidrome-Verknüpfung sind weg, sobald kein Konto den
|
||||
Titel mehr aktiv hat.
|
||||
|
||||
Denkbar wäre ein Papierkorb am Server (Datei erst nach X Tagen wirklich
|
||||
löschen). Bewusst nicht gebaut — erst beobachten, ob es in der Praxis
|
||||
gebraucht wird.
|
||||
Reference in New Issue
Block a user