package audit import ( "context" "testing" ) // fakeRegistrar simuliert den RET-05-Modul-Adapter-Vertrag, da Archive // (RET-01/RET-02/RET-05) zum Zeitpunkt dieser Kachel noch nicht als Code // existiert (nur geplant in archive-kanban). Belegt NUR, dass Core mit den // richtigen Parametern registriert — ersetzt KEINE Integrationspruefung // gegen die echte Archive-Engine, siehe Pruefungen-Abschnitt im Commit. type fakeRegistrar struct { objectType string defaultRetentionYears int tenantOverridable bool called bool } func (f *fakeRegistrar) RegisterObjectType(ctx context.Context, objectType string, defaultRetentionYears int, tenantOverridable bool) error { f.called = true f.objectType = objectType f.defaultRetentionYears = defaultRetentionYears f.tenantOverridable = tenantOverridable return nil } // Akzeptanzkriterium 1 + 2: Registrierung mit korrektem Objekttyp und // GoBD-Default-Frist von 10 Jahren, tenant-ueberschreibbar. func TestRegisterWithArchive_UsesCorrectObjectTypeAndRetention(t *testing.T) { fake := &fakeRegistrar{} if err := RegisterWithArchive(context.Background(), fake); err != nil { t.Fatalf("register: %v", err) } if !fake.called { t.Fatal("erwartet aufruf von RegisterObjectType") } if fake.objectType != AuditLogObjectType { t.Fatalf("objectType = %q, want %q", fake.objectType, AuditLogObjectType) } if fake.defaultRetentionYears != 10 { t.Fatalf("defaultRetentionYears = %d, want 10 (GoBD-Frist)", fake.defaultRetentionYears) } if !fake.tenantOverridable { t.Fatal("erwartet tenantOverridable = true") } }