aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/bun.js/import-meta.test.js42
-rw-r--r--test/bun.js/import.live.decl.js4
-rw-r--r--test/bun.js/import.live.rexport-require.js1
-rw-r--r--test/bun.js/import.live.rexport.js2
-rw-r--r--test/bun.js/require-js-top-level-await.js1
-rw-r--r--test/bun.js/require-js.js2
-rw-r--r--test/bun.js/require-js2.js1
7 files changed, 52 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);
});
diff --git a/test/bun.js/import.live.decl.js b/test/bun.js/import.live.decl.js
new file mode 100644
index 000000000..46e67c9bd
--- /dev/null
+++ b/test/bun.js/import.live.decl.js
@@ -0,0 +1,4 @@
+export var foo = 1;
+export function setFoo(val) {
+ foo = val;
+}
diff --git a/test/bun.js/import.live.rexport-require.js b/test/bun.js/import.live.rexport-require.js
new file mode 100644
index 000000000..10c993e08
--- /dev/null
+++ b/test/bun.js/import.live.rexport-require.js
@@ -0,0 +1 @@
+export const Namespace = import.meta.require("./import.live.decl.js");
diff --git a/test/bun.js/import.live.rexport.js b/test/bun.js/import.live.rexport.js
new file mode 100644
index 000000000..e4accd2ba
--- /dev/null
+++ b/test/bun.js/import.live.rexport.js
@@ -0,0 +1,2 @@
+export { foo, setFoo } from "./import.live.decl";
+import { foo as bar } from "./import.live.decl";
diff --git a/test/bun.js/require-js-top-level-await.js b/test/bun.js/require-js-top-level-await.js
new file mode 100644
index 000000000..16bff41c3
--- /dev/null
+++ b/test/bun.js/require-js-top-level-await.js
@@ -0,0 +1 @@
+export const fail = await 1;
diff --git a/test/bun.js/require-js.js b/test/bun.js/require-js.js
new file mode 100644
index 000000000..36fc31432
--- /dev/null
+++ b/test/bun.js/require-js.js
@@ -0,0 +1,2 @@
+import { hello } from "./require-js2.js";
+export { hello };
diff --git a/test/bun.js/require-js2.js b/test/bun.js/require-js2.js
new file mode 100644
index 000000000..518e69641
--- /dev/null
+++ b/test/bun.js/require-js2.js
@@ -0,0 +1 @@
+export const hello = -123;