From 5b38c55c3db018a94505f61cd785f0dd40f442ac Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Tue, 23 May 2023 00:40:12 -0700 Subject: Support setting a timezone with `process.env.TZ` and `Bun.env.TZ` (#3018) * Support setting a timezone via `process.env.TZ` * Implement `setTimeZone` in `bun:jsc` module * [breaking] `bun:test` now defaults to `Etc/UTC` timezone --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- test/js/node/process/process.test.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/js/node/process/process.test.js') diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index 414392a79..c9f92362c 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -98,6 +98,28 @@ it("process.env is spreadable and editable", () => { expect(eval(`globalThis.process.env.USER = "${orig}"`)).toBe(orig); }); +it("process.env.TZ", () => { + var origTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone; + + // the default timezone is Etc/UTC + if (!"TZ" in process.env) { + expect(origTimezone).toBe("Etc/UTC"); + } + + const realOrigTimezone = origTimezone; + if (origTimezone === "America/Anchorage") { + origTimezone = "America/New_York"; + } + + const target = "America/Anchorage"; + const tzKey = String("TZ" + " ").substring(0, 2); + process.env[tzKey] = target; + expect(process.env[tzKey]).toBe(target); + expect(Intl.DateTimeFormat().resolvedOptions().timeZone).toBe(target); + process.env[tzKey] = origTimezone; + expect(Intl.DateTimeFormat().resolvedOptions().timeZone).toBe(realOrigTimezone); +}); + it("process.version starts with v", () => { expect(process.version.startsWith("v")).toBeTruthy(); }); -- cgit v1.2.3