package saas import ( "testing" "time" ) func TestHomeCalendarWeekUsesBeijingAcrossHostZonesAndBoundaries(t *testing.T) { cases := []struct{ instant, start, end string }{ {"2026-10-04T15:59:59Z", "2026-09-28", "2026-10-05"}, {"2026-10-04T16:00:00Z", "2026-10-05", "2026-10-12"}, {"2026-10-05T16:00:00Z", "2026-10-05", "2026-10-12"}, {"2025-12-31T16:00:00Z", "2025-12-29", "2026-01-05"}, {"2026-03-08T16:00:00Z", "2026-03-09", "2026-03-16"}, } for _, tc := range cases { at, err := time.Parse(time.RFC3339, tc.instant) if err != nil { t.Fatal(err) } for _, offset := range []int{-7 * 3600, 0, 8 * 3600, 9 * 3600} { start, end, err := homeCalendarWeek(at.In(time.FixedZone("host", offset))) if err != nil { t.Fatal(err) } _, gotOffset := start.Zone() if start.Location().String() != "Asia/Shanghai" || gotOffset != 8*3600 || start.Format("2006-01-02") != tc.start || end.Format("2006-01-02") != tc.end || start.Hour() != 0 || end.Sub(start) != 7*24*time.Hour { t.Fatalf("instant=%s hostOffset=%d start=%s end=%s", tc.instant, offset, start, end) } } } }