@@ -322,23 +322,26 @@ func TestAdminAPI_UsageEndpoints_E2E(t *testing.T) {
322322 expectedTotalTokens = expectedInputTokens + expectedOutputTokens
323323 )
324324
325- // Mock provider usage is 10 input + 20 output tokens per request, and this test sends 2 requests.
326- requestDate := time .Now ().UTC ()
327- today := requestDate .Format ("2006-01-02" )
328-
329325 usageFixture := setupSQLiteUsageFixture (t )
330326 ts := setupE2EAdminServer (t , e2eServerOptions {
331327 adminUsageReader : usageFixture .reader ,
332328 usageLogger : usageFixture .logger ,
333329 })
334330 defer ts .Close ()
335331
332+ // Mock provider usage is 10 input + 20 output tokens per request, and this test sends 2 requests.
333+ requestWindowStart := time .Now ().UTC ()
336334 for i := 0 ; i < expectedRequests ; i ++ {
337335 resp := sendJSONRequest (t , ts .URL + chatCompletionsPath , defaultChatReq ("Hello usage" ))
338336 require .Equal (t , http .StatusOK , resp .StatusCode )
339337 closeBody (resp )
340338 }
341339 usageFixture .flush (t )
340+ requestWindowEnd := time .Now ().UTC ()
341+ expectedDailyDates := []string {requestWindowStart .Format ("2006-01-02" )}
342+ if endDate := requestWindowEnd .Format ("2006-01-02" ); endDate != expectedDailyDates [0 ] {
343+ expectedDailyDates = append (expectedDailyDates , endDate )
344+ }
342345
343346 t .Run ("summary includes persisted usage" , func (t * testing.T ) {
344347 resp , err := http .Get (ts .URL + "/admin/usage/summary" )
@@ -369,18 +372,32 @@ func TestAdminAPI_UsageEndpoints_E2E(t *testing.T) {
369372 require .NoError (t , json .Unmarshal (body , & daily ))
370373 require .NotEmpty (t , daily )
371374
372- var todayEntry * usage.DailyUsage
375+ var matchedEntries [] usage.DailyUsage
373376 for i := range daily {
374- if daily [i ].Date == today {
375- todayEntry = & daily [i ]
376- break
377+ for _ , expectedDate := range expectedDailyDates {
378+ if daily [i ].Date == expectedDate {
379+ matchedEntries = append (matchedEntries , daily [i ])
380+ break
381+ }
377382 }
378383 }
379- require .NotNil (t , todayEntry , "expected daily usage entry for %s" , today )
380- assert .Equal (t , expectedRequests , todayEntry .Requests )
381- assert .Equal (t , expectedInputTokens , todayEntry .InputTokens )
382- assert .Equal (t , expectedOutputTokens , todayEntry .OutputTokens )
383- assert .Equal (t , expectedTotalTokens , todayEntry .TotalTokens )
384+ require .NotEmpty (t , matchedEntries , "expected daily usage entry for one of %v" , expectedDailyDates )
385+
386+ var actualRequests int
387+ var actualInputTokens int64
388+ var actualOutputTokens int64
389+ var actualTotalTokens int64
390+ for _ , entry := range matchedEntries {
391+ actualRequests += entry .Requests
392+ actualInputTokens += entry .InputTokens
393+ actualOutputTokens += entry .OutputTokens
394+ actualTotalTokens += entry .TotalTokens
395+ }
396+
397+ assert .Equal (t , expectedRequests , actualRequests )
398+ assert .Equal (t , expectedInputTokens , actualInputTokens )
399+ assert .Equal (t , expectedOutputTokens , actualOutputTokens )
400+ assert .Equal (t , expectedTotalTokens , actualTotalTokens )
384401 })
385402
386403 t .Run ("query params accepted" , func (t * testing.T ) {
0 commit comments