我们更新到最新的 Mui Date 选择器。现在,我们的 CI 管道中出现了一个奇怪的问题,即快照测试失败。
在我们的 Jest 测试中,我们设置了一个固定日期,如下所示:
jest.useFakeTimers().setSystemTime(new Date('04 Dec 1995 00:12:00 GMT').getTime());
此测试在本地成功,但在 CI 管道中运行时失败,因为数据时间戳值不同:
<button
aria-colindex="6"
aria-selected="false"
class="MuiButtonBase-root MuiPickersDay-root MuiPickersDay-dayWithMargin css-qa7bje-MuiButtonBase-root-MuiPickersDay-root"
data-timestamp="817772400000"
role="gridcell"
tabindex="-1"
type="button"
>
在快照中,您可以看到使用了正确的日期,以显示日期选择器。只是时间戳值不是预期的值。我在这里错过了什么吗?
我找到了解决方案,仅设置固定时间是不够的,因为当天的寄宿生取决于时区。所以我必须设置固定日期并设置固定时区(在 packages.json 中)才能使其正常工作。
在测试中:
jest.useFakeTimers().setSystemTime(new Date('04 Dec 1995 00:12:00 GMT').getTime());
在packages.json中:
"test": "set TZ=America/New_York && react-scripts test",