- Löschfristen (Migration 0020): pro Mandant einstellbar statt fest im Regelwerk, da die DSGVO selbst keine festen Fristen nennt (Art. 5 Abs. 1 lit. e). Jede Firma wird mit risikogestaffelten Vorschlagswerten vorbelegt, loeschfrist_max_tage wird jetzt tatsächlich hart gegen Werkzeuge gefiltert (schließt rules/OPEN.md Punkt 4). - Neues internal/mail-Paket (SMTP-Versand + Test-Doppel) und darauf aufbauend Passwort-Zurücksetzen (Migration 0019) - bisher nur als Absicht in der Rollentabelle genannt, nie gebaut. - dpf_zertifiziert für alle 20 Katalogeinträge gegen das offizielle DPF-Register recherchiert und in der Produktions-DB aktualisiert (12 zertifiziert, 5 recherchiert-nicht-gefunden, 3 nicht anwendbar). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package store_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoeschfristEinstellungUpsert(t *testing.T) {
|
|
s := openTestStore(t)
|
|
ctx := context.Background()
|
|
accID := testAccountID(t, s)
|
|
|
|
e, err := s.UpsertLoeschfristEinstellung(ctx, accID, "personenbezogen", 90)
|
|
if err != nil {
|
|
t.Fatalf("UpsertLoeschfristEinstellung: %v", err)
|
|
}
|
|
if e.MaxTage != 90 {
|
|
t.Fatalf("MaxTage = %d, want 90", e.MaxTage)
|
|
}
|
|
|
|
// Erneutes Upsert für dieselbe Datenklasse überschreibt statt zu duplizieren.
|
|
if _, err := s.UpsertLoeschfristEinstellung(ctx, accID, "personenbezogen", 30); err != nil {
|
|
t.Fatalf("UpsertLoeschfristEinstellung (Update): %v", err)
|
|
}
|
|
if _, err := s.UpsertLoeschfristEinstellung(ctx, accID, "besondere_kategorie", 14); err != nil {
|
|
t.Fatalf("UpsertLoeschfristEinstellung: %v", err)
|
|
}
|
|
|
|
liste, err := s.ListLoeschfristEinstellungenForAccount(ctx, accID)
|
|
if err != nil {
|
|
t.Fatalf("ListLoeschfristEinstellungenForAccount: %v", err)
|
|
}
|
|
if len(liste) != 2 {
|
|
t.Fatalf("got %d Einstellungen, want 2 (Upsert darf nicht duplizieren)", len(liste))
|
|
}
|
|
for _, e := range liste {
|
|
if e.DatenklasseID == "personenbezogen" && e.MaxTage != 30 {
|
|
t.Fatalf("personenbezogen MaxTage = %d, want 30 nach Update", e.MaxTage)
|
|
}
|
|
}
|
|
}
|