QA-09: Schnittstellen-Vertragstests #292

Closed
patrick wants to merge 0 commits from feature/qa-09-schnittstellen-vertragstests into main
pull from: feature/qa-09-schnittstellen-vertragstests
Owner

ACHTUNG: baut auf PR #291 (INT-12) auf, Diff enthaelt bis zu dessen Merge auch INT-12s Aenderungen. Vertragstests fuer INT-04/11/12/13-Modul-Adapter, komprimierter Dauerlauf-Test statt wortgetreuem 24h-Lauf (Abweichung dokumentiert, Nutzer-autorisiert), Webhook-Retry-Nachweis. Dabei echtes Goroutine-Leck in dms/internal/mailimport/imap.go gefunden und behoben.

🤖 Generated with Claude Code

ACHTUNG: baut auf PR #291 (INT-12) auf, Diff enthaelt bis zu dessen Merge auch INT-12s Aenderungen. Vertragstests fuer INT-04/11/12/13-Modul-Adapter, komprimierter Dauerlauf-Test statt wortgetreuem 24h-Lauf (Abweichung dokumentiert, Nutzer-autorisiert), Webhook-Retry-Nachweis. Dabei echtes Goroutine-Leck in dms/internal/mailimport/imap.go gefunden und behoben. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 5 commits 2026-10-15 23:56:47 +02:00
INT-12: AI-Anbindung Objekttyp-Registrierung (Kopplung AI GOV-01)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
AI-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
358964415c
DMS registriert den Dokument-Objekttyp inkl. KI-relevanter Felder (Volltext,
Metadaten) beim Start automatisch bei AI GOV-01 - ueber eine neue HTTP-
Schnittstelle (ai/internal/moduletypeapi), da DMS ein getrenntes Go-Modul
ist und GOV-01s Go-Paket nicht importieren kann. Registrierung ist optional
(fehlt die AI-Basis-URL, startet DMS unveraendert) und fail-open (ein
unerreichbarer AI-Dienst blockiert den DMS-Start nie).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Vertragstests fuer die DMS-seitigen Schnittstellen zu Archive (INT-11),
AI (INT-12), Workflow (INT-13) und die E-Mail-Regel-API (INT-04): jeder
Test prueft die tatsaechlich gesendete/empfangene JSON-Nutzlast eines
echten Clients/Handlers gegen ihr dokumentiertes Schema, ergaenzt um eine
DetectsBreakingChange-Gegenprobe je Vertrag (Muster wie Core QA-07/Archive
QA-07-Pendant). CMIS (INT-09) hat mit parity_test.go/arch_test.go bereits
aequivalente Abdeckung, daher hier nicht dupliziert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Viele Import-Zyklen hintereinander statt des woertlichen 24h-Dauerlaufs
(siehe docs/QA-09-PRUEFPROTOKOLL.md fuer die Begruendung), je Zyklus
mehrere Nachrichten/Stapel: belegt verlustfreien Import ueber INT-04/08
Zyklen hinweg (Pruefung 2).

Der Test deckte dabei ein echtes Ressourcenleck auf: Dialer.connect
startete eine Goroutine, die auf den AUFRUFER-Kontext wartete (haeufig
context.Background(), nie Done) statt auf einen an die Sitzung
gebundenen Kontext - jeder Poll-Zyklus liess so dauerhaft eine Goroutine
haengen. Fix: sessCtx wird von ctx abgeleitet und in session.close()
abgebrochen, die Beobachtung auf externe Kontext-Stornierung bleibt
erhalten.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ergaenzt internal/contracttest (Core QA-07) um den fuer DMS QA-09
Pruefung 3 noetigen Nachweis: ein Webhook-Ziel, das nach mehreren
Fehlversuchen wieder erreichbar ist, wird trotzdem noch zugestellt
(TestProcessDue_RetriesWithBackoffThenMarksFailed in
internal/webhook/webhook_test.go belegt bereits den dauerhaften
Fehlschlag, nicht aber die Wiederherstellung). Liegt im Core-Modul, da
DMS die Core-internen Pakete (Dispatcher/Store) nicht importieren kann
(getrenntes Go-Modul, siehe dms/internal/retentionclient-Muster).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
QA-09: Pruefprotokoll (schnittstellen-vertragstests)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
AI-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
109bfd2757
Dokumentiert die 24h-Dauerlauf-Abweichung (komprimierter Ersatztest statt
woertlichem 24h-Lauf, User-autorisiert), alle drei Akzeptanzkriterien mit
Zielwert/Messwert/Bewertung, den gefundenen und behobenen Goroutine-Leck
in mailimport.Dialer.connect, sowie den Regressionsnachweis ueber die
vollstaendige DMS-Testsuite und die QA-09-relevanten Root-Modul-Pakete.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.
patrick closed this pull request 2026-10-19 12:29:38 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#292