package repository import ( "reflect" "testing" ) func TestRepositoryCapabilitiesExcludeUnneededOperations(t *testing.T) { tests := []struct { name string capability reflect.Type forbidden []string }{ { name: "auth user", capability: reflect.TypeFor[AuthUserRepository](), forbidden: []string{"MarkAdminDeleted", "ListIncludeDeleted"}, }, { name: "admin user", capability: reflect.TypeFor[AdminUserRepository](), forbidden: []string{"CreateRegisteredUser", "FindByEmail"}, }, { name: "auth session", capability: reflect.TypeFor[AuthSessionRepository](), forbidden: []string{"DeleteSessionsByUserID", "DeleteExpiredSessions"}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { for _, method := range tt.forbidden { if _, ok := tt.capability.MethodByName(method); ok { t.Fatalf("capability unexpectedly exposes %s", method) } } }) } }