diff options
author | 2022-11-21 17:31:42 -0800 | |
---|---|---|
committer | 2022-11-21 17:31:42 -0800 | |
commit | 55f8029dc28a8c8cc1e40daae1e888aea48c4a1a (patch) | |
tree | 3ebc7c07e40426055a1ad56210de3e02d79c5fa4 | |
parent | a3dc33c13350f4227c1cfb669f095d011d34ed76 (diff) | |
download | bun-55f8029dc28a8c8cc1e40daae1e888aea48c4a1a.tar.gz bun-55f8029dc28a8c8cc1e40daae1e888aea48c4a1a.tar.zst bun-55f8029dc28a8c8cc1e40daae1e888aea48c4a1a.zip |
Add test for wildcard import without an extension
-rw-r--r-- | test/bun.js/resolve.test.js | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/test/bun.js/resolve.test.js b/test/bun.js/resolve.test.js index 1ae00306e..80e2bb7ba 100644 --- a/test/bun.js/resolve.test.js +++ b/test/bun.js/resolve.test.js @@ -1,6 +1,10 @@ import { it, expect } from "bun:test"; import { mkdirSync, writeFileSync } from "fs"; -import { join } from "path"; +import { join, resolve } from "path"; + +function resolveFrom(from) { + return (specifier) => import.meta.resolveSync(specifier, from); +} it("#imports", async () => { await writePackageJSONImportsFixture(); @@ -44,16 +48,19 @@ it("#imports", async () => { } }); -// this is known to be failing it("#imports with wildcard", async () => { await writePackageJSONImportsFixture(); + const run = resolveFrom( + resolve( + import.meta.dir + "/node_modules/package-json-imports/package.json", + ), + ); - // Chcek that package-json-imports/#foo/wildcard works - expect( - ( - await import.meta.resolve("package-json-imports/#foo/wildcard.js") - ).endsWith("/wildcard.js"), - ).toBe(true); + const wildcard = resolve( + import.meta.dir + "/node_modules/package-json-imports/foo/wildcard.js", + ); + expect(run("#foo/wildcard.js")).toBe(wildcard); + expect(run("#foo/extensionless/wildcard")).toBe(wildcard); }); it("import.meta.resolve", async () => { @@ -241,9 +248,11 @@ function writePackageJSONImportsFixture() { "./baz": "./foo/bar.js", }, imports: { - "#foo": "./foo/private-foo.js", "#foo/bar": "./foo/private-foo.js", - "#foo/": "./foo/", + "#foo/*.js": "./foo/*.js", + "#foo/extensionless/*": "./foo/*.js", + "#foo": "./foo/private-foo.js", + "#internal-react": "react", }, }, |