package model import ( "testing" "time" ) func TestGetDashboardDayStartUnixUsesShanghai(t *testing.T) { utcTime := time.Date(2026, 5, 5, 0, 30, 0, 0, time.UTC) got := getDashboardDayStartUnix(utcTime) want := time.Date(2026, 5, 5, 0, 0, 0, 0, dashboardMetricsLocation).Unix() if got != want { t.Fatalf("expected Shanghai day start %d, got %d", want, got) } } func TestAccumulateCacheMetrics(t *testing.T) { row := cacheMetricRow{ PromptTokens: 100, Other: `{"cache_read_tokens":40,"cache_write_tokens":10}`, } metrics := CacheDashboardMetrics{} accumulateCacheMetrics(&metrics, row) finalizeCacheMetrics(&metrics) if metrics.CacheReadTokens != 40 { t.Fatalf("expected cache read 40, got %d", metrics.CacheReadTokens) } if metrics.CacheWriteTokens != 10 { t.Fatalf("expected cache write 10, got %d", metrics.CacheWriteTokens) } if metrics.CacheTokens != 50 { t.Fatalf("expected cache tokens 50, got %d", metrics.CacheTokens) } if metrics.CacheHitRate <= 0 { t.Fatalf("expected positive hit rate, got %f", metrics.CacheHitRate) } }