Skip to content

v1.5.2 — 测试不再依赖运行时区,四个时区均通过

Choose a tag to compare

@XDTrees XDTrees released this 24 Sep 08:14
· 68 commits to main since this release

修掉测试对运行时区的依赖(发布流程在 CI 上红了)

1.5.0 把签到的小时判定改成显式 Asia/Shanghai,但测试仍在用 new Date(2026, 8, 7, 10, 30)
构造时刻——那是本机时区的 10:30。本机在 UTC+8 时恰好等于北京时间 10:30,所以本地全绿;
换到 UTC 的 CI 上,同一时刻变成北京时间 18:30,于是 isFireHour(..., [10]) 返回 false,
四个用例集体变红。

代码没问题,是测试的构造方式错了:用「运行机器时区」的输入去断言「固定北京时区」的实现,
结论必然随机器而变。

修法

  • 测试里所有时刻改用 beijing(y, m, d, h, min) 显式构造(Date.UTC(h - 8))
  • 新增一条用例专门钉住「同一个瞬间在任何时区下判出同一个小时」
  • 顺带修好一处漏掉的 AUTOMATION_JOB_KINDS import

验证

时区 结果
UTC 188 passed
America/New_York 188 passed
Asia/Shanghai 188 passed
Europe/London 188 passed

无生产代码改动——这一版只修测试。