fix(PROJ-74): Test-/Vet-Signatur-Drift beheben, go build/vet/test wieder grün

archivmail-export nutzte noch die alte storage.New(path string)-Signatur
statt storage.Config (fehlender Keyfile/Compress hätte Rohbytes statt
Klartext-EML exportiert). Toten Self-Assignment-Code in storage.go entfernt.
Testdateien (storage, audit, api, userstore, auth) an aktuelle Signaturen
angeglichen; auth-Tests liefen bisher gegen einen SQLite-Pfad statt Postgres-
DSN und wurden auf das TEST_DATABASE_URL-Schema-Isolationsmuster der übrigen
Pakete umgestellt. api_test.go las den Login-Token noch aus dem JSON-Body
statt aus dem httpOnly-Cookie (Auth-Contract-Drift).

TestParseMissingDate an tatsächliches Verhalten angepasst: der Parser lässt
das Datum bewusst als Zero-Value, der time.Now()-Fallback sitzt in der
Storage-Schicht — damit bleibt nachvollziehbar ob ein Datum aus der Mail
stammt oder vom Archiv gesetzt wurde (GoBD).

Verifiziert auf 192.168.1.132: go build/vet/test ./... komplett grün,
kein Skip (Postgres + Manticore erreichbar).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019j28kGcaJAhBnrYX34hGdt
This commit is contained in:
sysops
2026-08-05 14:07:46 +02:00
co-authored by Claude Sonnet 5
parent 88cdc3eb3e
commit 075afa005a
11 changed files with 247 additions and 34 deletions
+8 -3
View File
@@ -93,8 +93,13 @@ func TestParseMissingDate(t *testing.T) {
if err != nil {
t.Fatalf("Parse: %v", err)
}
// Should fall back to time.Now(), so should not be zero
if p.Date.IsZero() {
t.Error("Date should fall back to now, not zero")
// Der Parser erfindet bewusst kein Datum: fehlt/unparsbar ist der
// Date-Header, bleibt pm.Date der Zero-Value (parser.go:188-191).
// Den Fallback auf "jetzt" setzt erst die Storage-Schicht beim
// Schreiben von received_at (storage.go:998-1000, 1034-1036).
// So bleibt im Parser unterscheidbar, ob ein Datum aus der Mail
// stammt oder vom Archiv gesetzt wurde (GoBD-Nachvollziehbarkeit).
if !p.Date.IsZero() {
t.Errorf("Date should stay zero when Date header is missing, got %v", p.Date)
}
}