如何在Jest配置中设置时区?
✗ npx jest --version24.5.0
获得了一组对时区敏感的玩笑测试。我们通常使用npm脚本运行它们:"jest": "TZ=utc jest"
将TZ设置为utc时,我可以在快照中获得如下所示的值:
modificationDate="2019-01-08T00:00:00.000Z"
没有它,我得到:
modificationDate="2019-01-08T08:00:00.000Z"
配置文档中没有关于此的任何内容。
我尝试将这两个添加到我的jest.config.js中。没有人起作用:
TZ: 'utc', globals: {
TZ: 'utc',
},
当然,解决这个问题似乎微不足道,但是令我惊讶的是,Jest没有办法配置它进行测试。
回答:
-请参阅
https://github.com/nodejs/node/issues/4230
问题process.env.TZ =
'UTC';在于,如果某行在此行之前运行并使用Date
,则该值将被缓存在中Date
。因此process.env
通常不适合设置时区。参见
https://github.com/nodejs/node/issues/3449
因此,更好的方法是使用实际的env变量,但是对于测试而言,它将起作用:
"jest": { ...
// depending on your paths it can also be './global-setup.js'
"globalSetup": "../global-setup.js"
}
}
作为global-setup.js
module.exports = async () => { process.env.TZ = 'UTC';
};
describe('Timezones', () => { it('should always be UTC', () => {
expect(new Date().getTimezoneOffset()).toBe(0);
});
});
正常setupFiles
并 对我来说,因为它们运行太晚了(开玩笑:^ 23.5.0)。因此,
使用globalSetup文件。
以上是 如何在Jest配置中设置时区? 的全部内容, 来源链接: utcz.com/qa/402805.html