aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/bun.js/resolve.test.js82
-rw-r--r--test/bun.js/serve.test.ts40
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);
}