Repository navigation
v1.5.2 — 测试不再依赖运行时区,四个时区均通过
修掉测试对运行时区的依赖(发布流程在 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_KINDSimport
验证
| 时区 | 结果 |
|---|---|
| UTC | 188 passed |
| America/New_York | 188 passed |
| Asia/Shanghai | 188 passed |
| Europe/London | 188 passed |
无生产代码改动——这一版只修测试。