39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package userleaderboard
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestPeriodWindowUsesUTCBoundaries(t *testing.T) {
|
|
now := time.Date(2026, 5, 20, 15, 30, 0, 0, time.FixedZone("CST", 8*60*60))
|
|
|
|
todayStart, todayEnd := periodWindow(PeriodToday, now)
|
|
if todayStart != time.Date(2026, 5, 20, 0, 0, 0, 0, time.UTC) {
|
|
t.Fatalf("today start = %s", todayStart)
|
|
}
|
|
if !todayEnd.Equal(now.UTC()) {
|
|
t.Fatalf("today end = %s", todayEnd)
|
|
}
|
|
|
|
weekStart, _ := periodWindow(PeriodWeek, now)
|
|
if weekStart != time.Date(2026, 5, 18, 0, 0, 0, 0, time.UTC) {
|
|
t.Fatalf("week start = %s", weekStart)
|
|
}
|
|
|
|
monthStart, _ := periodWindow(PeriodMonth, now)
|
|
if monthStart != time.Date(2026, 5, 1, 0, 0, 0, 0, time.UTC) {
|
|
t.Fatalf("month start = %s", monthStart)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeQueryDefaultsAndCapsPageSize(t *testing.T) {
|
|
query := NormalizeQuery(Query{BoardType: "receiver", Period: "monthly", PageSize: 500})
|
|
if query.BoardType != BoardTypeReceived || query.Period != PeriodMonth {
|
|
t.Fatalf("query = %+v", query)
|
|
}
|
|
if query.Page != 1 || query.PageSize != maxPageSize {
|
|
t.Fatalf("pagination = page %d pageSize %d", query.Page, query.PageSize)
|
|
}
|
|
}
|