aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/import-meta.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js/import-meta.test.js')
-rw-r--r--test/bun.js/import-meta.test.js42
1 files changed, 41 insertions, 1 deletions
diff --git a/test/bun.js/import-meta.test.js b/test/bun.js/import-meta.test.js
index 0e2faa903..f2cd996cd 100644
--- a/test/bun.js/import-meta.test.js
+++ b/test/bun.js/import-meta.test.js
@@ -18,12 +18,52 @@ it("import.meta.resolveSync", () => {
).toBe(import.meta.path);
});
-it("import.meta.require", () => {
+it("import.meta.require (json)", () => {
expect(import.meta.require("./require-json.json").hello).toBe(sync.hello);
const require = Module.createRequire(import.meta.path);
expect(require("./require-json.json").hello).toBe(sync.hello);
});
+it("import.meta.require (javascript)", () => {
+ expect(import.meta.require("./require-js.js").hello).toBe(sync.hello);
+ const require = Module.createRequire(import.meta.path);
+ expect(require("./require-js.js").hello).toBe(sync.hello);
+});
+
+it("import.meta.require (javascript, live bindings)", () => {
+ var Source = import.meta.require("./import.live.decl.js");
+
+ // require transpiles to import.meta.require
+ var ReExport = require("./import.live.rexport.js");
+
+ // dynamic require (string interpolation that way forces it to be dynamic)
+ var ReExportDynamic = require(`./import.live.${"rexport"
+ .split("")
+ .join("")}.js`);
+
+ expect(Source.foo).toBe(1);
+ Source.setFoo(Source.foo + 1);
+
+ expect(ReExport.foo).toBe(2);
+ expect(Source.foo).toBe(2);
+ expect(ReExportDynamic.foo).toBe(2);
+
+ Source.setFoo(Source.foo + 1);
+
+ var { Namespace } = require("./import.live.rexport-require.js");
+
+ expect(Namespace).toBe(Source);
+ expect(ReExport.foo).toBe(3);
+ expect(Source.foo).toBe(3);
+ expect(Namespace.foo).toBe(3);
+
+ ReExport.setFoo(ReExport.foo + 1);
+
+ expect(ReExport.foo).toBe(4);
+ expect(Source.foo).toBe(4);
+ expect(Namespace.foo).toBe(4);
+});
+
it("import.meta.dir", () => {
expect(dir.endsWith("/bun/test/bun.js")).toBe(true);
});