diff --git a/.planning/phases/16-ad-gruppen-synchronisation/16-UAT.md b/.planning/phases/16-ad-gruppen-synchronisation/16-UAT.md index 80e87ad..f000573 100644 --- a/.planning/phases/16-ad-gruppen-synchronisation/16-UAT.md +++ b/.planning/phases/16-ad-gruppen-synchronisation/16-UAT.md @@ -3,7 +3,7 @@ status: testing phase: 16-ad-gruppen-synchronisation source: [16-VERIFICATION.md] started: 2026-08-06T15:15:00Z -updated: 2026-08-06T15:15:00Z +updated: 2026-08-11T08:40:00Z --- ## Current Test @@ -15,6 +15,9 @@ expected: | objectGUID. Nur dann kann der Sync eine Umbenennung von einem Verschwinden unterscheiden — die Grundlage von Erfolgskriterium 3. awaiting: user response +blocked_on: | + Schreibzugriff im AD (balios.ctl.local) — die importierte Gruppe CN=Claude_VT + muss dort umbenannt werden. Danach Test 2, 3, 4 und der offene Teil von Test 7. ## Tests @@ -36,15 +39,52 @@ result: [pending] ### 5. Browser: Import-Sektion auf /admin/ldap expected: Sektion "AD-Gruppen importieren" — Discovery liefert nur Gruppen (keine OUs), Checkbox-Auswahl funktioniert, Import-Button traegt die Auswahlzahl und ist bei leerer Auswahl deaktiviert, bereits importierte Gruppen tragen das Badge und sind deaktiviert, Ergebnisblock erscheint, Fehlerzustaende sind sichtbar (nicht still). Deckt die als `verification: backstop` markierten UI-Zustaende ab: leer, ladend, Fehler, Overflow, lange Namen. -result: [pending] +result: passed +tested: 2026-08-11 auf alpha.tessera.ctl.de gegen das echte AD (balios.ctl.local), Playwright +notes: | + Discovery lieferte 236 Eintraege, davon 0 mit OU=-Prefix — der Typfilter greift. + Leerer Zustand vor der Suche korrekt. Import-Button "Ausgewaehlte importieren (0)" + deaktiviert, nach Auswahl von CN=Claude_VT auf "(1)" und aktiv. Nach dem Import: + Ergebnisblock "1 importiert, 0 uebersprungen" plus Hinweis auf die spaetere + Mitgliedschaftsbefuellung, Zeile traegt Badge "Bereits importiert" und die + Checkbox ist deaktiviert. In der DB steht ldapObjectGuid=d11c8cea7d455f49a4919daee0039aa3. + Fehlerzustand ueber eine erzwungene 500-Antwort auf GET /ldap/groups geprueft: + "AD-Gruppen konnten nicht abgerufen werden..." erscheint sichtbar, kein stiller Abbruch. ### 6. Browser: Gruppen-Dialog in allen drei Zustaenden expected: /admin/groups — Anlegen zeigt den Hinweis mit Link zum LDAP-Bereich und keine AD-Auswahl mehr; eine lokale Gruppe laesst sich umbenennen; bei einer importierten Gruppe ist das Namensfeld sichtbar gesperrt mit Herkunftshinweis, die AD-DN-Zeile ist sichtbar, der interne Name speichert korrekt, und ein Fehler beim Speichern bleibt im Dialog sichtbar mit erhaltenen Eingaben. -result: [pending] +result: passed +tested: 2026-08-11 auf alpha.tessera.ctl.de, Playwright +notes: | + Zustand Anlegen: nur Namensfeld, Hinweis "AD-Gruppen werden im LDAP-Bereich + importiert, nicht hier angelegt." mit Link "Zum LDAP-Bereich" auf /admin/ldap, + keine AD-Auswahl mehr vorhanden. + Zustand lokale Gruppe: "Alle Benutzer" liess sich auf "Alle Benutzer Test" + umbenennen und wieder zuruecksetzen; kein AD-DN, kein internes Namensfeld. + Zustand importierte Gruppe: Namensfeld disabled mit Wert "Claude_VT", Hinweis + "Von der AD-Gruppe uebernommen...", Zeile "AD-DN: CN=Claude_VT,OU=Verteiler, + OU=CTL_Gruppen,DC=ctl,DC=local", interner Name "Claude Verteiler" gespeichert + und in der Liste als Anzeigename uebernommen. + Fehlerfall (WR-02): lokale Gruppe auf den bereits vergebenen Namen "Claude_VT" + umbenannt — 409 erzeugt "Der Name ist bereits vergeben." im Dialog, Dialog bleibt + offen, Eingabe bleibt erhalten. ### 7. Browser: Sync-Bericht und Freigabe-Matrix expected: /admin/ldap — Sync ausloesen, alle drei Zahlenzeilen erscheinen auch bei Werten von 0; die gelbe Zeile zur verschobenen Standardmarkierung erscheint nur, wenn das tatsaechlich passiert ist; ein fehlgeschlagener Sync zeigt eine Fehlermeldung statt eines Null-Berichts. /admin/modules/grants — die Spaltensuche findet eine Gruppe sowohl unter ihrem internen als auch unter ihrem AD-Namen. -result: [pending] +result: partial +tested: 2026-08-11 auf alpha.tessera.ctl.de, Playwright +notes: | + Bestanden: Fehlerfall des Berichts (D-21) — bei erzwungener 500-Antwort auf + POST /ldap/sync erscheint "Die Synchronisation konnte nicht ausgefuehrt werden.", + KEIN Null-Bericht mit Zahlenzeilen. + Bestanden: Freigabe-Matrix — Spaltenkopf zeigt den internen Namen "Claude Verteiler"; + die Spaltensuche findet die Gruppe sowohl unter "Claude Verteiler" als auch unter + dem AD-Namen "Claude_VT". + OFFEN: die drei Zahlenzeilen eines ERFOLGREICHEN Sync-Laufs und die Amber-Zeile + zur verschobenen Standardmarkierung. Ein echter Sync wurde auf Wunsch des Users + uebersprungen, weil ohne gesetzten Gruppen-/OU-Filter alle Personen unter + DC=ctl,DC=local als Tessera-Benutzer angelegt wuerden. Nachzuholen zusammen mit + Test 3 und 4, die ohnehin einen echten Sync-Lauf brauchen. ### 8. Nebenlaeufigkeit und Layoutstress (backstop-Aussagen) expected: Kein beobachtbares Fehlverhalten bei parallelen Anfragen, bei Reihenfolgeunabhaengigkeit, bei Sortier-Divergenz zwischen AD-Name und internem Namen, und bei sehr langen Texten in Listen und Dialogen. Diese Aussagen sind bewusst als `verification: backstop` deklariert — kein Code-Beleg reicht zu ihrer Bestaetigung. @@ -53,10 +93,26 @@ result: [pending] ## Summary total: 8 -passed: 0 +passed: 2 +partial: 1 issues: 0 -pending: 8 +pending: 5 skipped: 0 blocked: 0 ## Gaps + +Offen nach dem Browser-Durchlauf vom 2026-08-11: + +- Tests 1 und 2 (Annahmen A1/A2 gegen ein echtes AD) — brauchen Schreibzugriff im AD + (Gruppe umbenennen, Gruppe loeschen). Nicht durch die Oberflaeche abbildbar. +- Tests 3 und 4 (SC-3 Umbenennung, SC-4 Loeschung end-to-end) — haengen an 1 und 2 und + brauchen zusaetzlich einen echten Sync-Lauf. +- Test 7, Teil "Zahlenzeilen eines erfolgreichen Laufs" — auf Wunsch uebersprungen, + siehe Notiz dort. Vorschlag: vorher den Import-Filter auf CN=Claude_VT setzen, + dann bleibt der Lauf klein. +- Test 8 (Nebenlaeufigkeit, Layoutstress) — weiterhin offen, per Definition backstop. + +Zustand auf alpha nach dem Durchlauf: die AD-Gruppe CN=Claude_VT ist als Tessera-Gruppe +importiert und traegt den internen Namen "Claude Verteiler". Sie ist bewusst stehen +geblieben, weil Tests 3 und 4 genau diese Gruppe brauchen.