-
-
Couldn't load subscription status.
- Fork 6.6k
Description
🐛 Bug Report
Nodejs 13+ allows for setting process.env.TZ and having it affect new Dates created at runtime. You can try this in a repl with the following (comments are the dates output on my system):
console.log(process.env.TZ); // undefined
console.log(new Date().toString()); // Tue Apr 21 2020 22:05:28 GMT+0100 (British Summer Time)
process.env.TZ = 'Asia/Kolkata'; // not my timezone
console.log(new Date().toString()); // Wed Apr 22 2020 02:35:28 GMT+0530 (India Standard Time)
This also works in a simple node script (i.e. node test.js) or in the mocha testing library.
Doing the same in jest, either with the lines copied into an test, or some variation where the timezone is set in beforeEach(), does not work. The time printed before and after setting the timezone is the same, ignoring the change in system timezone.
To Reproduce
Steps to reproduce the behavior:
describe('changing the timezone', () => {
it('resets the nodejs timezone cache', () => {
console.log(process.env.TZ); // undefined
console.log(new Date().toString()); // Tue Apr 21 2020 22:36:08 GMT+0100 (British Summer Time)
process.env.TZ = 'Asia/Kolkata'; // not my timezone
console.log(new Date().toString()); // Tue Apr 21 2020 22:36:08 GMT+0100 (British Summer Time)
});
});
Expected behavior
Note that that the date serialisation should be affected by the timezone in the second console.log()
describe('changing the timezone', () => {
it('resets the nodejs timezone cache', () => {
console.log(process.env.TZ); // undefined
console.log(new Date().toString()); // Tue Apr 21 2020 22:37:36 GMT+0100 (British Summer Time)
process.env.TZ = 'Asia/Kolkata'; // not my timezone
console.log(new Date().toString()); // Wed Apr 22 2020 03:07:36 GMT+0530 (India Standard Time)
});
});
Link to repl or repo (highly encouraged)
Unfortunately the linked repl uses nodejs 12 and so won't benefit from the change merged in nodejs 13.
envinfo
$ npx envinfo --preset jest
npx: installed 1 in 1.318s
System:
OS: macOS 10.15.4
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Binaries:
Node: 14.0.0 - ~/.nvm/versions/node/v14.0.0/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.4 - ~/.nvm/versions/node/v14.0.0/bin/npm
npmPackages:
jest: ^24.9.0 => 24.9.0