diff options
author | 2022-07-04 16:39:33 -0700 | |
---|---|---|
committer | 2022-07-04 16:39:33 -0700 | |
commit | 2f212d1386051dfb690532f03414ff34e2381ec1 (patch) | |
tree | ea4edd12bcef4907e9261bc2b759d22883e4ac9f /test/bun.js | |
parent | 1e54e94cc2a2c83ba81e67eb7a54058aa0aa78ff (diff) | |
download | bun-2f212d1386051dfb690532f03414ff34e2381ec1.tar.gz bun-2f212d1386051dfb690532f03414ff34e2381ec1.tar.zst bun-2f212d1386051dfb690532f03414ff34e2381ec1.zip |
[resolver] Add a test for self-referencing package.json exports
Diffstat (limited to 'test/bun.js')
-rw-r--r-- | test/bun.js/resolve.test.js | 44 |
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, |