diff options
Diffstat (limited to '')
-rw-r--r-- | test/bun.js/resolve.test.js | 82 | ||||
-rw-r--r-- | test/bun.js/serve.test.ts | 40 |
2 files changed, 102 insertions, 20 deletions
diff --git a/test/bun.js/resolve.test.js b/test/bun.js/resolve.test.js index d081823e6..ea7b6cf2d 100644 --- a/test/bun.js/resolve.test.js +++ b/test/bun.js/resolve.test.js @@ -2,6 +2,48 @@ import { it, expect } from "bun:test"; import { mkdirSync, writeFileSync } from "fs"; import { join } from "path"; +it("#imports", async () => { + await writePackageJSONImportsFixture(); + + const baz = await import.meta.resolve( + "#foo", + join(await import.meta.resolve("package-json-imports/baz"), "../") + ); + expect(baz.endsWith("foo/private-foo.js")).toBe(true); + + const subpath = await import.meta.resolve( + "#foo/bar", + join(await import.meta.resolve("package-json-imports/baz"), "../") + ); + expect(subpath.endsWith("foo/private-foo.js")).toBe(true); + + const react = await import.meta.resolve( + "#internal-react", + join(await import.meta.resolve("package-json-imports/baz"), "../") + ); + expect(react.endsWith("/react/index.js")).toBe(true); + + // Check that #foo is not resolved to the package.json file. + try { + await import.meta.resolve("#foo"); + throw new Error("Test failed"); + } catch (exception) { + expect(exception instanceof ResolveError).toBe(true); + expect(exception.referrer).toBe(import.meta.path); + expect(exception.name).toBe("ResolveError"); + } + + // Chcek that package-json-imports/#foo doesn't work + try { + await import.meta.resolve("package-json-imports/#foo"); + throw new Error("Test failed"); + } catch (exception) { + expect(exception instanceof ResolveError).toBe(true); + expect(exception.referrer).toBe(import.meta.path); + expect(exception.name).toBe("ResolveError"); + } +}); + it("import.meta.resolve", async () => { expect(await import.meta.resolve("./resolve.test.js")).toBe(import.meta.path); @@ -150,3 +192,43 @@ function writePackageJSONExportsFixture() { ) ); } + +function writePackageJSONImportsFixture() { + try { + mkdirSync( + join(import.meta.dir, "./node_modules/package-json-imports/foo"), + { + recursive: true, + } + ); + } catch (exception) {} + writeFileSync( + join(import.meta.dir, "./node_modules/package-json-imports/foo/bar.js"), + "export const bar = 1;" + ); + writeFileSync( + join( + import.meta.dir, + "./node_modules/package-json-imports/foo/private-foo.js" + ), + "export {bar} from 'package-json-imports/#foo';" + ); + writeFileSync( + join(import.meta.dir, "./node_modules/package-json-imports/package.json"), + JSON.stringify( + { + name: "package-json-imports", + exports: { + "./baz": "./foo/bar.js", + }, + imports: { + "#foo": "./foo/private-foo.js", + "#foo/bar": "./foo/private-foo.js", + "#internal-react": "react", + }, + }, + null, + 2 + ) + ); +} diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts index ba505feba..95428c028 100644 --- a/test/bun.js/serve.test.ts +++ b/test/bun.js/serve.test.ts @@ -39,7 +39,7 @@ describe("streaming", () => { }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); if (response.status > 0) { expect(response.status).toBe(500); expect(await response.text()).toBe("fail"); @@ -77,7 +77,7 @@ describe("streaming", () => { }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); // connection terminated if (response.status > 0) { expect(response.status).toBe(200); @@ -110,7 +110,7 @@ describe("streaming", () => { }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); const text = await response.text(); expect(text.length).toBe(textToExpect.length); expect(text).toBe(textToExpect); @@ -134,7 +134,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -157,7 +157,7 @@ describe("streaming", () => { }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(response.status).toBe(500); } catch (e) { if (!e || !(e instanceof TestPass)) { @@ -191,7 +191,7 @@ describe("streaming", () => { }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(response.status).toBe(500); expect(await response.text()).toBe("Fail"); expect(pass).toBe(true); @@ -222,7 +222,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -244,7 +244,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); const text = await response.text(); expect(text).toBe(textToExpect); server.stop(); @@ -270,7 +270,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -295,7 +295,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -324,7 +324,7 @@ describe("streaming", () => { ); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -337,7 +337,7 @@ it("should work for a hello world", async () => { return new Response(`Hello, world!`); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe("Hello, world!"); server.stop(); }); @@ -352,7 +352,7 @@ it("should work for a blob", async () => { return new Response(new Blob([textToExpect])); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -367,7 +367,7 @@ it("should work for a blob stream", async () => { return new Response(new Blob([textToExpect]).stream()); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -382,7 +382,7 @@ it("should work for a file", async () => { return new Response(file(fixture)); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -397,7 +397,7 @@ it("should work for a file stream", async () => { return new Response(file(fixture).stream()); }, }); - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -416,7 +416,7 @@ it("fetch should work with headers", async () => { }); }, }); - const response = await fetch(`http://localhost:${server.port}`, { + const response = await fetch(`http://127.0.0.1:${server.port}`, { headers: { "X-Foo": "bar", }, @@ -444,7 +444,7 @@ it(`should work for a file ${count} times serial`, async () => { // it's hard to say if this only happens here due to some weird stuff with the test runner // or if it's "real" issue for (let i = 0; i < count; i++) { - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); } @@ -467,7 +467,7 @@ it(`should work for text ${count} times serial`, async () => { // it's hard to say if this only happens here due to some weird stuff with the test runner // or if it's "real" issue for (let i = 0; i < count; i++) { - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); } @@ -488,7 +488,7 @@ it(`should work for ArrayBuffer ${count} times serial`, async () => { // it's hard to say if this only happens here due to some weird stuff with the test runner // or if it's "real" issue for (let i = 0; i < count; i++) { - const response = await fetch(`http://localhost:${server.port}`); + const response = await fetch(`http://127.0.0.1:${server.port}`); expect(await response.text()).toBe(textToExpect); } |