Dispatcharr-Pfad absichern statt nur von Hand prüfen #22
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Die Unit-Tests decken Parser, Filter und Regeln ab. Der ganze Backend-Pfad — Anmeldung, Senderabruf, Favoriten, Ausgabeprofile — hat null automatisierte Abdeckung.
Wie sich das gerächt hat
Beim ersten Lauf gegen die echte Instanz kamen sofort drei Sachen hoch, die 20 Demo-Sender nie gezeigt hätten (siehe
de6d3a9):Alle drei per Auge gefunden. Das heißt: da ist wahrscheinlich mehr.
Was gebaut wird
Mindestens das Kleine, gern das Große:
tests/, den man vor einem Release durchgeht — anmelden, Senderliste, Favorit setzen und wieder weg, Profil wechseln, abmeldenDispatcharrRepositorygegen aufgezeichnete Antworten testen (echte JSON-Antworten als Fixtures, keine Live-Instanz im Test)Der Smoke-Test hilft hier nicht: er deinstalliert die App und damit die Anmeldung.
Beides erledigt in
d269618.Groß: Das Parsen ist aus
DispatcharrRepositoryheraus inDispatcharrJsongewandert und hat jetzt zwölf Tests — gebaut aus den Formen, die eure Instanz tatsächlich liefert:results+next) und blanke Arraysuuid(der Proxy löst über uuid auf, Zahlen-IDs geben 404) undhidden_from_outputeffective_name/effective_logo_id/effective_tvg_idmit Rückfall auf die einfachen Felderchannels(Nutzer, der nie etwas markiert hat)data,results, blankes Array), plus kaputte Zeiten und leeretvg_idAndroids Stub-
org.jsonwirft in Unit-Tests bei jedem Aufruf, deshalb liegt die echte Implementierung jetzt im Test-Classpath (org.json:json:20240303).Gesamtzahl Tests: 69, alle grün. Danach gegen die echte Instanz gegengeprüft: 505 Sender, 3 Favoriten, Vereinsmenü — unverändert.
Klein:
tests/dispatcharr-checkliste.md— der Ablauf für alles, was kein Test erreicht: Anmeldung, Favoriten-Rundlauf, Vereinsmenüs, Profile, Abmelden.