Files
pyramid/docs/PC_TESTPLAN.md
T

6.6 KiB
Raw Blame History

PC-Testplan alle aufgelaufenen UNGETESTET(Pi)-Punkte

Stand: 2026-07-03; Autopilot-Ergebnisse vom 2026-07-06 eingetragen. Alle Pi-Sessions seit dem 2026-07-03 konnten nur flutter analyze + automatisierte Textvergleiche fahren (kein GUI auf dem Pi). Dieser Plan konsolidiert JEDEN ausstehenden Praxistest aus PROGRESS.md an einer Stelle. Beim nächsten Windows-Lauf von oben nach unten abarbeiten, Ergebnis je Punkt hier eintragen (/ + Datum), Befunde als eigene PROGRESS-Einträge.

Schnellster Weg: flutter run -d windows.

Grenze des Autopilot-Laufs 2026-07-06: Der Autopilot kann bauen, testen und die App starten/beenden, aber NICHT in der UI klicken. Alles Klick-Interaktive (Abschnitte 28, Logout/Re-Login in Abschnitt 1) braucht Bernd am PC die App-Starts heute liefen mit Bernds bestehender Session.

0. Vorab (1 Minute)

  • flutter test 2026-07-06: 29 Tests grün (24 Bestand + 5 neue SQLCipher-Tests aus test/app_database_test.dart), mehrfach gelaufen (vor/nach SQLCipher-Umbau und nach dem M2-Call-Pilot).

1. Härtetest Login/Krypto (M1 PFLICHT, zuerst!)

Deckt die Fixes 63e4919, 9dc83f7, 891f348 ab (Uta-Random-Logout + Guard). Seit 2026-07-06 zusätzlich relevant: SQLCipher-Migration ist auf diesem PC gelaufen die lokale DB ist jetzt verschlüsselt (PROGRESS.md 2026-07-06).

  • Login mit Test-Account → Nachrichten in verschlüsseltem Raum senden/lesen (Teil-Evidenz 2026-07-06: Bestands-Session blieb über 3 App-Starts und die DB-Migration hinweg eingeloggt; App hat live to_device-Events von @uta entschlüsselt und Room-Keys forwardet → Lesen/E2EE belegt. Aktives SENDEN + frischer Login noch offen → Klick-Test Bernd)
  • auth_log.txt (App-Support-Verzeichnis) prüfen: 2026-07-06 LoginState-Wechsel werden mitgeschrieben (je Start loggedIn), dazu der DB-Migrations-Eintrag; keine unerwarteten Warnungen, kein Soft-Logout-Eintrag.
  • Logout (Warnung bei fehlendem Key-Backup erscheint? b5762ea) Klick-Test
  • Erneuter Login → alte verschlüsselte Nachrichten noch lesbar? Klick-Test
  • Mehrere Stunden laufen lassen: kein Random-Logout, kein Login-Screen-Flackern (isLoggedInProvider-Änderung), auth_log.txt zeigt ggf. „Soft-Logout durch Token-Refresh abgewendet" (IN ARBEIT Zwischenstand 2026-07-06 16:57: Der 12:43-Lauf endete schon ~13:03 (letzter DB-Write; keine Absturzspur in Event-Log/WER, kein Logout-Eintrag vermutlich Fenster geschlossen). Im 20-min- Fenster KEIN Random-Logout. Session überlebte danach den 4. Start mit verschlüsselter DB (auth_log 16:57:46 loggedIn, keine erneute Migration). Beobachtung neu gestartet 16:57 nächste Session bitte auth_log.txt auf Einträge seit 2026-07-06 16:57 prüfen; erst nach einem echten Mehr-Stunden-Fenster abhaken)
  • Ergebnis als „Härtetest"-Eintrag in PROGRESS.md dokumentieren (= ROADMAP-M1-Punkt „Härtetest dokumentieren" abhaken)
  • Android: nach Neu-Login beobachten, ob Push-Inhalte wieder echt entschlüsselt ankommen (statt „Neue Nachricht"-Platzhalter). Falls nicht: zweite Ursache, siehe docs/NOTIFICATIONS.md + Memory „Pyramid Push"
  • Danach Uta: einmal aus- und wieder einloggen (erst dann hat ihre Session einen Refresh-Token!)

2. Settings-Split (5d77238, 12 Teildateien)

Alle Reiter öffnen und benutzen: Profil, Benachrichtigungen, Erscheinungsbild, Voice, Tastaturkürzel, Privatsphäre, Sessions, Verschlüsselung, Account, Über.

  • Verschlüsselung (HEILIG): Recovery-Key anzeigen, Megolm-Export UND -Import (Passphrase), SAS/QR-Verifizierung starten
  • Sessions: Gerät umbenennen, Einzel-Logout, Massen-Logout-Dialog (Passwort-Reauth) nur bis zur Abfrage
  • Account: Passwort-ändern-Dialog öffnen, Account-löschen-Dialog öffnen (NICHT bestätigen)
  • Logout-Warnungs-Text bei fehlendem Backup sichtbar (settings_about/shared)

3. Chat-Timeline-Split (5bf45a9) + tote-Code-Bereinigung (6400fb6)

Einen Chat mit allen Nachrichtentypen durchgehen:

  • Text mit Link-Vorschau, Bild, Video, Audio, Datei-Anhang
  • Download-/Entschlüsselungs-Fehlerpfade in message_media.dart gezielt ansehen (am wenigsten geprüfter Teil)
  • Reaktionen setzen/entfernen, Hover-Aktionsleiste, Antworten/Zitat
  • Datums-Trenner, „Neue Nachrichten"-Divider
  • Gescheiterte Nachricht: bleibt mit Retry/Löschen stehen, Retry geht
  • Zeitanzeige bei aufeinanderfolgenden Nachrichten + Hover-Uhrzeit bei Fortsetzungsnachrichten (_formatMessageTime-Zusammenführung)

4. Raumlisten-Split (a863fa3) + Reorder-Fix (401bd6a)

  • Space wechseln, Raum beitreten/verlassen
  • Drag&Drop-Umsortieren: landet der Raum EXAKT an der Zielposition? (onReorder→onReorderItem, Index-Korrektur jetzt im Framework Off-by-One wäre hier sichtbar; nach oben UND nach unten ziehen testen)
  • Voice-Channel-Teilnehmerliste in der Raumliste
  • Einladung annehmen/ablehnen, Ungelesen-Badge, DM-Avatare

5. Space-Admin-Split (0c7d359)

An einem TEST-Space, nicht an Utas echtem:

  • Übersicht: Sichtbarkeit umschalten, Banner ändern (Danger-Zone nur ansehen)
  • Mitglieder: einladen, Rolle ändern (Selbst-Aussperr-Schutz updatePowerLevelsSafely greift?), kicken
  • Berechtigungen ändern, Kanäle: erstellen + bestehenden Raum hinzufügen

6. Chat-View-Split (31e4001)

  • Chat-Header (normal + DM mit ausklappendem Header/Presence)
  • Tippanzeige, Offline-/Reconnect-Banner (Netz kurz trennen)
  • Datei per Drag&Drop in den Chat ziehen (Overlay + Senden)

7. Dokument-Viewer-Split (daf4cf3) + Matrix4-Fix (401bd6a)

  • PDF inline im Chat, Vollbild-Viewer: Zoom per Buttons/Strg+Mausrad (translateByDouble/scaleByDouble-Umbau zoomt es zentriert wie vorher?), Seiten-Navigation, Thumbnail-Leiste, Speichern-Button
  • Text/Markdown/SVG-Vorschau, Office-Text-Extraktion
  • ZIP/TAR-Archiv-Browser, PSD-Thumbnail
  • Bild im Chat öffnen (Fallback-Pfade)

8. Kleinkram aus den Lint-Commits

  • Mini-Call-Widget: Buttons zeigen jetzt Hover-Farbe (9dc1175, gewollt) sieht das ok aus?
  • Anhang-Dialog + Raum-erstellen-Dialog: Switches (activeThumbColor) sehen aus wie vorher
  • Voice-Channel beitreten/verlassen (Kernflow laut CLAUDE.md, von den Splits nicht berührt, aber Pflicht nach jedem Refactoring)

Danach

  • Alle hier eintragen, PROGRESS.md-Eintrag „PC-Praxistest" schreiben, erst DANN neue riskante Punkte anfangen (Call-Fassade, SQLCipher siehe docs/SQLCIPHER_MIGRATION.md)