fix(test): 修复聚合测试的时区边界条件问题
This commit is contained in:
@@ -413,9 +413,17 @@ func (s *UsageLogRepoSuite) TestGetAccountTodayStats() {
|
|||||||
|
|
||||||
func (s *UsageLogRepoSuite) TestDashboardAggregationConsistency() {
|
func (s *UsageLogRepoSuite) TestDashboardAggregationConsistency() {
|
||||||
now := time.Now().UTC().Truncate(time.Second)
|
now := time.Now().UTC().Truncate(time.Second)
|
||||||
hour1 := now.Add(-90 * time.Minute).Truncate(time.Hour)
|
// 使用固定的时间偏移确保 hour1 和 hour2 在同一天且都在过去
|
||||||
hour2 := now.Add(-30 * time.Minute).Truncate(time.Hour)
|
// 选择当天 02:00 和 03:00 作为测试时间点(基于 now 的日期)
|
||||||
dayStart := truncateToDayUTC(now)
|
dayStart := truncateToDayUTC(now)
|
||||||
|
hour1 := dayStart.Add(2 * time.Hour) // 当天 02:00
|
||||||
|
hour2 := dayStart.Add(3 * time.Hour) // 当天 03:00
|
||||||
|
// 如果当前时间早于 hour2,则使用昨天的时间
|
||||||
|
if now.Before(hour2.Add(time.Hour)) {
|
||||||
|
dayStart = dayStart.Add(-24 * time.Hour)
|
||||||
|
hour1 = dayStart.Add(2 * time.Hour)
|
||||||
|
hour2 = dayStart.Add(3 * time.Hour)
|
||||||
|
}
|
||||||
|
|
||||||
user1 := mustCreateUser(s.T(), s.client, &service.User{Email: "agg-u1@test.com"})
|
user1 := mustCreateUser(s.T(), s.client, &service.User{Email: "agg-u1@test.com"})
|
||||||
user2 := mustCreateUser(s.T(), s.client, &service.User{Email: "agg-u2@test.com"})
|
user2 := mustCreateUser(s.T(), s.client, &service.User{Email: "agg-u2@test.com"})
|
||||||
@@ -473,7 +481,7 @@ func (s *UsageLogRepoSuite) TestDashboardAggregationConsistency() {
|
|||||||
|
|
||||||
aggRepo := newDashboardAggregationRepositoryWithSQL(s.tx)
|
aggRepo := newDashboardAggregationRepositoryWithSQL(s.tx)
|
||||||
aggStart := hour1.Add(-5 * time.Minute)
|
aggStart := hour1.Add(-5 * time.Minute)
|
||||||
aggEnd := now.Add(5 * time.Minute)
|
aggEnd := hour2.Add(time.Hour) // 确保覆盖 hour2 的所有数据
|
||||||
s.Require().NoError(aggRepo.AggregateRange(s.ctx, aggStart, aggEnd))
|
s.Require().NoError(aggRepo.AggregateRange(s.ctx, aggStart, aggEnd))
|
||||||
|
|
||||||
type hourlyRow struct {
|
type hourlyRow struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user