From 3f92a4317072965bda308a66a1354a8043eafda5 Mon Sep 17 00:00:00 2001 From: IanShaw <131567472+IanShaw027@users.noreply.github.com> Date: Sat, 27 Dec 2025 13:53:47 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E5=AE=8C=E5=96=84=20UsageLogRepo=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=20stub=20=E7=9A=84=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20(#50)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/server/api_contract_test.go | 34 ++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/backend/internal/server/api_contract_test.go b/backend/internal/server/api_contract_test.go index 1aeedf8d..72909b58 100644 --- a/backend/internal/server/api_contract_test.go +++ b/backend/internal/server/api_contract_test.go @@ -925,8 +925,38 @@ func (r *stubUsageLogRepo) GetUserModelStats(ctx context.Context, userID int64, func (r *stubUsageLogRepo) ListWithFilters(ctx context.Context, params pagination.PaginationParams, filters usagestats.UsageLogFilters) ([]service.UsageLog, *pagination.PaginationResult, error) { logs := r.userLogs[filters.UserID] - total := int64(len(logs)) - out := paginateLogs(logs, params) + + // Apply filters + var filtered []service.UsageLog + for _, log := range logs { + // Apply ApiKeyID filter + if filters.ApiKeyID > 0 && log.ApiKeyID != filters.ApiKeyID { + continue + } + // Apply Model filter + if filters.Model != "" && log.Model != filters.Model { + continue + } + // Apply Stream filter + if filters.Stream != nil && log.Stream != *filters.Stream { + continue + } + // Apply BillingType filter + if filters.BillingType != nil && log.BillingType != *filters.BillingType { + continue + } + // Apply time range filters + if filters.StartTime != nil && log.CreatedAt.Before(*filters.StartTime) { + continue + } + if filters.EndTime != nil && log.CreatedAt.After(*filters.EndTime) { + continue + } + filtered = append(filtered, log) + } + + total := int64(len(filtered)) + out := paginateLogs(filtered, params) return out, paginationResult(total, params), nil }