fix(admin): GetUserBreakdown 使用 ParseUsageRequestType 解析 request_type

Fixes #3920
This commit is contained in:
li
2026-07-10 11:43:44 +08:00
parent ddb1a210ce
commit dda8f78733
2 changed files with 46 additions and 4 deletions
@@ -241,3 +241,42 @@ func TestGetUserBreakdown_NoFilters(t *testing.T) {
require.Empty(t, repo.capturedDim.Model)
require.Empty(t, repo.capturedDim.Endpoint)
}
func TestGetUserBreakdown_RequestTypeStringFilter(t *testing.T) {
cases := []struct {
name string
value string
want int16
}{
{"ws_v2", "ws_v2", int16(service.RequestTypeWSV2)},
{"stream", "stream", int16(service.RequestTypeStream)},
{"sync", "sync", int16(service.RequestTypeSync)},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
repo := &userBreakdownRepoCapture{}
router := newUserBreakdownRouter(repo)
req := httptest.NewRequest(http.MethodGet,
"/admin/dashboard/user-breakdown?start_date=2026-03-01&end_date=2026-03-16&request_type="+tc.value, nil)
w := httptest.NewRecorder()
router.ServeHTTP(w, req)
require.Equal(t, http.StatusOK, w.Code)
require.NotNil(t, repo.capturedDim.RequestType, "request_type=%s should set filter", tc.value)
require.Equal(t, tc.want, *repo.capturedDim.RequestType)
})
}
}
func TestGetUserBreakdown_InvalidRequestType(t *testing.T) {
repo := &userBreakdownRepoCapture{}
router := newUserBreakdownRouter(repo)
req := httptest.NewRequest(http.MethodGet,
"/admin/dashboard/user-breakdown?start_date=2026-03-01&end_date=2026-03-16&request_type=bogus", nil)
w := httptest.NewRecorder()
router.ServeHTTP(w, req)
require.Equal(t, http.StatusBadRequest, w.Code)
}