aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/process.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js/process.test.js')
-rw-r--r--test/bun.js/process.test.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/test/bun.js/process.test.js b/test/bun.js/process.test.js
index 4e79716db..f3ed9dd63 100644
--- a/test/bun.js/process.test.js
+++ b/test/bun.js/process.test.js
@@ -33,8 +33,7 @@ it("process", () => {
if (process.env.BACON !== "yummy") {
throw new Error("process.env is not re-writable");
}
-
- if (JSON.parse(JSON.stringify(process.env)).BACON !== "yummy") {
+ if (!JSON.stringify(process.env)) {
throw new Error("process.env is not serializable");
}
@@ -45,7 +44,6 @@ it("process", () => {
}
var { env, ...proces } = process;
- console.log(JSON.stringify(proces, null, 2));
console.log(proces);
console.log("CWD", process.cwd());
@@ -88,6 +86,19 @@ it("process.env", () => {
expect(process.env["LOL SMILE latin1 <abc>"]).toBe(undefined);
});
+it("process.env is spreadable and editable", () => {
+ process.env["LOL SMILE UTF16 😂"] = "😂";
+ const { "LOL SMILE UTF16 😂": lol, ...rest } = process.env;
+ expect(lol).toBe("😂");
+ delete process.env["LOL SMILE UTF16 😂"];
+ expect(rest).toEqual(process.env);
+ const orig = ((getter) => process.env[getter])("USER");
+ expect(process.env).toEqual(process.env);
+ eval(`globalThis.process.env.USER = 'bun';`);
+ expect(eval(`globalThis.process.env.USER`)).toBe("bun");
+ expect(eval(`globalThis.process.env.USER = "${orig}"`)).toBe(orig);
+});
+
it("process.version starts with v", () => {
expect(process.version.startsWith("v")).toBeTruthy();
});