aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/js/bun/jsc/bun-jsc.test.ts30
-rw-r--r--test/js/node/process/process.test.js22
2 files changed, 52 insertions, 0 deletions
diff --git a/test/js/bun/jsc/bun-jsc.test.ts b/test/js/bun/jsc/bun-jsc.test.ts
index aa93ce90a..f16a6a781 100644
--- a/test/js/bun/jsc/bun-jsc.test.ts
+++ b/test/js/bun/jsc/bun-jsc.test.ts
@@ -22,6 +22,7 @@ import {
reoptimizationRetryCount,
drainMicrotasks,
startRemoteDebugger,
+ setTimeZone,
} from "bun:jsc";
describe("bun:jsc", () => {
@@ -110,4 +111,33 @@ describe("bun:jsc", () => {
it("getProtectedObjects", () => {
expect(getProtectedObjects().length).toBeGreaterThan(0);
});
+
+ it("setTimeZone", () => {
+ var origTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
+ const realOrigTimezone = origTimezone;
+ if (origTimezone === "America/Anchorage") {
+ origTimezone = "America/New_York";
+ }
+ const origDate = new Date();
+ origDate.setSeconds(0);
+ origDate.setMilliseconds(0);
+ origDate.setMinutes(0);
+ const origDateString = origDate.toString();
+ expect(origTimezone).toBeDefined();
+ expect(origTimezone).not.toBe("America/Anchorage");
+ expect(setTimeZone("America/Anchorage")).toBe("America/Anchorage");
+ expect(Intl.DateTimeFormat().resolvedOptions().timeZone).toBe("America/Anchorage");
+ if (realOrigTimezone === origTimezone) {
+ const newDate = new Date();
+ newDate.setSeconds(0);
+ newDate.setMilliseconds(0);
+ newDate.setMinutes(0);
+ const newDateString = newDate.toString();
+ expect(newDateString).not.toBe(origDateString);
+ }
+
+ expect(setTimeZone(realOrigTimezone)).toBe(realOrigTimezone);
+
+ expect(Intl.DateTimeFormat().resolvedOptions().timeZone).toBe(origTimezone);
+ });
});
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();
});