aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js')
-rw-r--r--test/bun.js/resolve.test.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/bun.js/resolve.test.js b/test/bun.js/resolve.test.js
index 56162de4f..4f1e3935b 100644
--- a/test/bun.js/resolve.test.js
+++ b/test/bun.js/resolve.test.js
@@ -71,6 +71,42 @@ it("Bun.resolveSync", () => {
);
});
+it("self-referencing imports works", async () => {
+ await writePackageJSONExportsFixture();
+
+ const baz = await import.meta.resolve("package-json-exports/baz");
+ const namespace = await import.meta.resolve(
+ "package-json-exports/references-baz"
+ );
+ Loader.registry.delete(baz);
+ Loader.registry.delete(namespace);
+ var a = await import(baz);
+ var b = await import(namespace);
+ expect(a.bar).toBe(1);
+ expect(b.bar).toBe(1);
+
+ Loader.registry.delete(baz);
+ Loader.registry.delete(namespace);
+ var a = await import("package-json-exports/baz");
+ var b = await import("package-json-exports/references-baz");
+ expect(a.bar).toBe(1);
+ expect(b.bar).toBe(1);
+
+ Loader.registry.delete(baz);
+ Loader.registry.delete(namespace);
+ var a = import.meta.require("package-json-exports/baz");
+ var b = import.meta.require("package-json-exports/references-baz");
+ expect(a.bar).toBe(1);
+ expect(b.bar).toBe(1);
+
+ Loader.registry.delete(baz);
+ Loader.registry.delete(namespace);
+ var a = import.meta.require(baz);
+ var b = import.meta.require(namespace);
+ expect(a.bar).toBe(1);
+ expect(b.bar).toBe(1);
+});
+
function writePackageJSONExportsFixture() {
try {
mkdirSync(
@@ -85,12 +121,20 @@ function writePackageJSONExportsFixture() {
"export const bar = 1;"
);
writeFileSync(
+ join(
+ import.meta.dir,
+ "./node_modules/package-json-exports/foo/references-baz.js"
+ ),
+ "export {bar} from 'package-json-exports/baz';"
+ );
+ writeFileSync(
join(import.meta.dir, "./node_modules/package-json-exports/package.json"),
JSON.stringify(
{
name: "package-json-exports",
exports: {
"./baz": "./foo/bar.js",
+ "./references-baz": "./foo/references-baz.js",
},
},
null,