aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js')
-rw-r--r--test/bun.js/.prettierignore2
-rw-r--r--test/bun.js/baz.js1
-rw-r--r--test/bun.js/buffer.test.js5
-rw-r--r--test/bun.js/bun-server.test.ts8
-rw-r--r--test/bun.js/bun-write.test.js2
-rw-r--r--test/bun.js/disabled-module.test.js94
-rw-r--r--test/bun.js/fetch.test.js2
-rw-r--r--test/bun.js/fetch_headers.test.js20
-rw-r--r--test/bun.js/repro_2005.test.js1
9 files changed, 88 insertions, 47 deletions
diff --git a/test/bun.js/.prettierignore b/test/bun.js/.prettierignore
new file mode 100644
index 000000000..91b589eb2
--- /dev/null
+++ b/test/bun.js/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+third-party
diff --git a/test/bun.js/baz.js b/test/bun.js/baz.js
index 5837bb3bb..58a9bb4b0 100644
--- a/test/bun.js/baz.js
+++ b/test/bun.js/baz.js
@@ -1,2 +1,3 @@
// this file is used in resolve.test.js
+//
export default {};
diff --git a/test/bun.js/buffer.test.js b/test/bun.js/buffer.test.js
index 0dcf96816..b8fade4d2 100644
--- a/test/bun.js/buffer.test.js
+++ b/test/bun.js/buffer.test.js
@@ -2552,7 +2552,10 @@ it("should not perform out-of-bound access on invalid UTF-8 byte sequence", () =
});
it("repro #2063", () => {
- const buf = Buffer.from("eyJlbWFpbCI6Ijg3MTg4NDYxN0BxcS5jb20iLCJpZCI6OCwicm9sZSI6Im5vcm1hbCIsImlhdCI6MTY3NjI4NDQyMSwiZXhwIjoxNjc2ODg5MjIxfQ", 'base64');
+ const buf = Buffer.from(
+ "eyJlbWFpbCI6Ijg3MTg4NDYxN0BxcS5jb20iLCJpZCI6OCwicm9sZSI6Im5vcm1hbCIsImlhdCI6MTY3NjI4NDQyMSwiZXhwIjoxNjc2ODg5MjIxfQ",
+ "base64",
+ );
expect(buf.length).toBe(85);
expect(buf[82]).toBe(50);
expect(buf[83]).toBe(49);
diff --git a/test/bun.js/bun-server.test.ts b/test/bun.js/bun-server.test.ts
index 6e0eab6fd..52574d2a3 100644
--- a/test/bun.js/bun-server.test.ts
+++ b/test/bun.js/bun-server.test.ts
@@ -131,14 +131,16 @@ describe("Server", () => {
return new Response(
new ReadableStream({
async pull(controller) {
+ console.trace("here");
abortController.abort();
const buffer = await Bun.file(import.meta.dir + "/fixture.html.gz").arrayBuffer();
+ console.trace("here");
controller.enqueue(buffer);
+ console.trace("here");
//wait to detect the connection abortion
await Bun.sleep(15);
-
controller.close();
},
}),
@@ -155,11 +157,15 @@ describe("Server", () => {
});
try {
+ console.trace("here");
await fetch(`http://${server.hostname}:${server.port}`, { signal: abortController.signal });
} catch {}
await Bun.sleep(10);
+ console.trace("here");
expect(signalOnServer).toBe(true);
+ console.trace("here");
server.stop(true);
+ console.trace("here");
}
});
});
diff --git a/test/bun.js/bun-write.test.js b/test/bun.js/bun-write.test.js
index 68e221d51..c324d36a0 100644
--- a/test/bun.js/bun-write.test.js
+++ b/test/bun.js/bun-write.test.js
@@ -142,7 +142,7 @@ it("Bun.file", async () => {
it("Bun.file empty file", async () => {
const file = path.join(import.meta.dir, "emptyFile");
await gcTick();
- const buffer = await Bun.file(file).arrayBuffer()
+ const buffer = await Bun.file(file).arrayBuffer();
expect(buffer.byteLength).toBe(0);
await gcTick();
});
diff --git a/test/bun.js/disabled-module.test.js b/test/bun.js/disabled-module.test.js
index c12676959..61411aa44 100644
--- a/test/bun.js/disabled-module.test.js
+++ b/test/bun.js/disabled-module.test.js
@@ -1,38 +1,72 @@
import { expect, test } from "bun:test";
-test("not implemented yet module masquerades as undefined and throws an error", () => {
- const worker_threads = import.meta.require("worker_threads");
+// test("not implemented yet module masquerades as undefined and throws an error", () => {
+// const worker_threads = import.meta.require("worker_threads");
- expect(typeof worker_threads).toBe("undefined");
- expect(typeof worker_threads.getEnvironmentData).toBe("undefined");
+// expect(typeof worker_threads).toBe("undefined");
+// expect(typeof worker_threads.getEnvironmentData).toBe("undefined");
+// });
+
+test("AsyncContext", async done => {
+ const { AsyncContext } = import.meta.require("async_hooks");
+ console.log("here");
+ const ctx = new AsyncContext();
+ ctx
+ .run(1234, async () => {
+ expect(ctx.get()).toBe(1234);
+ console.log("here");
+ await 1;
+ console.log("ctx", ctx.get());
+ const setTimeoutResult = await ctx.run(
+ 2345,
+ () =>
+ new Promise(resolve => {
+ queueMicrotask(() => {
+ console.log("queueMicrotask", ctx.get());
+ resolve(ctx.get());
+ });
+ }),
+ );
+ expect(setTimeoutResult).toBe(2345);
+ expect(ctx.get()).toBe(1234);
+ return "final result";
+ })
+ .then(result => {
+ expect(result).toBe("final result");
+ // The code that generated the Promise has access to the 1234
+ // value provided to ctx.run above, but consumers of the Promise
+ // do not automatically inherit it.
+ expect(ctx.get()).toBeUndefined();
+ done();
+ });
});
-test("AsyncLocalStorage polyfill", () => {
- const { AsyncLocalStorage } = import.meta.require("async_hooks");
+// test("AsyncLocalStorage polyfill", () => {
+// const { AsyncLocalStorage } = import.meta.require("async_hooks");
- const store = new AsyncLocalStorage();
- var called = false;
- expect(store.getStore()).toBe(null);
- store.run({ foo: "bar" }, () => {
- expect(store.getStore()).toEqual({ foo: "bar" });
- called = true;
- });
- expect(store.getStore()).toBe(null);
- expect(called).toBe(true);
-});
+// const store = new AsyncLocalStorage();
+// var called = false;
+// expect(store.getStore()).toBe(null);
+// store.run({ foo: "bar" }, () => {
+// expect(store.getStore()).toEqual({ foo: "bar" });
+// called = true;
+// });
+// expect(store.getStore()).toBe(null);
+// expect(called).toBe(true);
+// });
-test("AsyncResource polyfill", () => {
- const { AsyncResource } = import.meta.require("async_hooks");
+// test("AsyncResource polyfill", () => {
+// const { AsyncResource } = import.meta.require("async_hooks");
- const resource = new AsyncResource("test");
- var called = false;
- resource.runInAsyncScope(
- () => {
- called = true;
- },
- null,
- "foo",
- "bar",
- );
- expect(called).toBe(true);
-});
+// const resource = new AsyncResource("test");
+// var called = false;
+// resource.runInAsyncScope(
+// () => {
+// called = true;
+// },
+// null,
+// "foo",
+// "bar",
+// );
+// expect(called).toBe(true);
+// });
diff --git a/test/bun.js/fetch.test.js b/test/bun.js/fetch.test.js
index e0f4c7d43..be64a0109 100644
--- a/test/bun.js/fetch.test.js
+++ b/test/bun.js/fetch.test.js
@@ -554,7 +554,7 @@ describe("Bun.file", () => {
testBlobInterface(data => {
const blob = new Blob([data]);
const buffer = Bun.peek(blob.arrayBuffer());
- const path = join(tempdir , "tmp-" + callCount++ + ".bytes");
+ const path = join(tempdir, "tmp-" + callCount++ + ".bytes");
require("fs").writeFileSync(path, buffer);
const file = Bun.file(path);
expect(blob.size).toBe(file.size);
diff --git a/test/bun.js/fetch_headers.test.js b/test/bun.js/fetch_headers.test.js
index 7f8fab188..2e5b9fa52 100644
--- a/test/bun.js/fetch_headers.test.js
+++ b/test/bun.js/fetch_headers.test.js
@@ -19,17 +19,17 @@ describe("Headers", async () => {
});
it("Headers should work", async () => {
- expect(await fetchContent({"x-test": "header 1"})).toBe("header 1");
+ expect(await fetchContent({ "x-test": "header 1" })).toBe("header 1");
});
it("Header names must be valid", async () => {
- expect(() => fetch(url, {headers: {"a\tb:c": "foo" }})).toThrow("Invalid header name: 'a\tb:c'");
- expect(() => fetch(url, {headers: {"❤️": "foo" }})).toThrow("Invalid header name: '❤️'");
+ expect(() => fetch(url, { headers: { "a\tb:c": "foo" } })).toThrow("Invalid header name: 'a\tb:c'");
+ expect(() => fetch(url, { headers: { "❤️": "foo" } })).toThrow("Invalid header name: '❤️'");
});
it("Header values must be valid", async () => {
- expect(() => fetch(url, {headers: {"x-test": "\0" }})).toThrow("Header 'x-test' has invalid value: '\0'");
- expect(() => fetch(url, {headers: {"x-test": "❤️" }})).toThrow("Header 'x-test' has invalid value: '❤️'");
+ expect(() => fetch(url, { headers: { "x-test": "\0" } })).toThrow("Header 'x-test' has invalid value: '\0'");
+ expect(() => fetch(url, { headers: { "x-test": "❤️" } })).toThrow("Header 'x-test' has invalid value: '❤️'");
});
it("repro 1602", async () => {
@@ -42,17 +42,13 @@ describe("Headers", async () => {
expect(roundTripString).toBe(origString);
// This one will pass
- expect(await fetchContent({"x-test": roundTripString})).toBe(roundTripString);
+ expect(await fetchContent({ "x-test": roundTripString })).toBe(roundTripString);
// This would hang
- expect(await fetchContent({"x-test": origString})).toBe(origString);
+ expect(await fetchContent({ "x-test": origString })).toBe(origString);
});
});
async function fetchContent(headers) {
- const res = await fetch(
- url,
- { headers: headers },
- { verbose: true }
- );
+ const res = await fetch(url, { headers: headers }, { verbose: true });
return await res.text();
}
diff --git a/test/bun.js/repro_2005.test.js b/test/bun.js/repro_2005.test.js
index bd80ab7dd..dc0cd9a97 100644
--- a/test/bun.js/repro_2005.test.js
+++ b/test/bun.js/repro_2005.test.js
@@ -8,5 +8,4 @@ it("regex literal with non-Latin1 should work", () => {
//Incorrect result: 这是一段要替换的文字
expect(text.replace(/要替换/, "")).toBe("这是一段的文字");
-
});