Jest 快照测试因 @mui/x-date-pickers 失败,快照中的时间戳不同

问题描述 投票:0回答:1

我们更新到最新的 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"
                        >

在快照中,您可以看到使用了正确的日期,以显示日期选择器。只是时间戳值不是预期的值。我在这里错过了什么吗?

reactjs jestjs datepicker snapshot-testing mui-x-date-picker
1个回答
0
投票

我找到了解决方案,仅设置固定时间是不够的,因为当天的寄宿生取决于时区。所以我必须设置固定日期并设置固定时区(在 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",
© www.soinside.com 2019 - 2024. All rights reserved.