aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js')
-rw-r--r--test/bun.js/serve.test.ts85
1 files changed, 57 insertions, 28 deletions
diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts
index 317d94100..0a38692c4 100644
--- a/test/bun.js/serve.test.ts
+++ b/test/bun.js/serve.test.ts
@@ -64,6 +64,8 @@ describe("streaming", () => {
development: false,
error(e) {
pass = false;
+ server?.stop();
+ server = null;
return new Response("fail", { status: 500 });
},
@@ -453,10 +455,6 @@ it(`should work for a file ${count} times serial`, async () => {
},
});
- // this gets stuck if run about 200 times awaiting all the promises
- // when the promises are run altogether, instead of one at a time
- // 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://${server.hostname}:${server.port}`);
expect(await response.text()).toBe(textToExpect);
@@ -465,21 +463,16 @@ it(`should work for a file ${count} times serial`, async () => {
server.stop();
});
-var count = 50;
-it(`should work for text ${count} times serial`, async () => {
+it(`should work for ArrayBuffer ${count} times serial`, async () => {
const textToExpect = "hello";
var ran = 0;
const server = serve({
port: port++,
fetch(req) {
- return new Response(textToExpect);
+ return new Response(new TextEncoder().encode(textToExpect));
},
});
- // this gets stuck if run about 200 times awaiting all the promises
- // when the promises are run altogether, instead of one at a time
- // 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://${server.hostname}:${server.port}`);
expect(await response.text()).toBe(textToExpect);
@@ -487,24 +480,60 @@ it(`should work for text ${count} times serial`, async () => {
server.stop();
});
-it(`should work for ArrayBuffer ${count} times serial`, async () => {
- const textToExpect = "hello";
- var ran = 0;
- const server = serve({
- port: port++,
- fetch(req) {
- return new Response(new TextEncoder().encode(textToExpect));
- },
+
+describe("parallell", () => {
+ it(`should work for text ${count} times in batches of 5`, async () => {
+ const textToExpect = "hello";
+ var ran = 0;
+ const server = serve({
+ port: port++,
+ fetch(req) {
+ return new Response(textToExpect);
+ },
+ });
+
+ for (let i = 0; i < count; ) {
+ let responses = await Promise.all([
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ ]);
+
+ for (let response of responses) {
+ expect(await response.text()).toBe(textToExpect);
+ }
+ i += responses.length;
+ }
+
+ server.stop();
});
+ it(`should work for Uint8Array ${count} times in batches of 5`, async () => {
+ const textToExpect = "hello";
+ var ran = 0;
+ const server = serve({
+ port: port++,
+ fetch(req) {
+ return new Response(new TextEncoder().encode(textToExpect));
+ },
+ });
- // this gets stuck if run about 200 times awaiting all the promises
- // when the promises are run altogether, instead of one at a time
- // 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://${server.hostname}:${server.port}`);
- expect(await response.text()).toBe(textToExpect);
- }
+ for (let i = 0; i < count; ) {
+ let responses = await Promise.all([
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ fetch(`http://${server.hostname}:${server.port}`),
+ ]);
+
+ for (let response of responses) {
+ expect(await response.text()).toBe(textToExpect);
+ }
+ i += responses.length;
+ }
- server.stop();
+ server.stop();
+ });
});
atar.com/avatar/b6791c921c4df047e8a107dcf3cad7c5?s=13&d=retro' width='13' height='13' alt='Gravatar' /> Yannik Schröder 3-11/+132 2023-10-16fix: don't remove content-encoding header from header table (#5743)Gravatar Liz 2-2/+25 2023-10-16fix(sqlite) Insert .all() does not return an array #5872 (#5946)Gravatar Hugo Galan 2-7/+11 2023-10-16Fix formattingGravatar Ashcon Partovi 2-5/+4 2023-10-16Fix `Response.statusText` (#6151)Gravatar Chris Toshok 10-238/+269 2023-10-16fix-subprocess-argument-missing (#6407)Gravatar Nicolae-Rares Ailincai 4-2/+40 2023-10-16Add type parameter to `expect` (#6128)Gravatar Voldemat 1-3/+3 2023-10-16fix(node:worker_threads): ensure threadId property is exposed on worker_threa...Gravatar Jérôme Benoit 6-15/+75 2023-10-16Fix use before define bug in sqliteGravatar Ashcon Partovi 2-5/+5 2023-10-16fix(jest): fix toStrictEqual on same URLs (#6528)Gravatar João Alisson 2-13/+16 2023-10-16Fix `toHaveBeenCalled` having wrong error signatureGravatar Ashcon Partovi 1-2/+2 2023-10-16Fix formattingGravatar Ashcon Partovi 1-2/+1 2023-10-16Add `reusePort` to `Bun.serve` typesGravatar Ashcon Partovi 1-0/+9 2023-10-16Fix `request.url` having incorrect portGravatar Ashcon Partovi 4-1/+92 2023-10-16Remove uWebSockets header from Bun.serve responsesGravatar Ashcon Partovi 1-6/+6 2023-10-16Rename some testsGravatar Ashcon Partovi 3-0/+0 2023-10-16Fix #6467Gravatar Ashcon Partovi 2-3/+10 2023-10-16Update InternalModuleRegistryConstants.hGravatar Dylan Conway 1-3/+3 2023-10-16Development -> Contributing (#6538)Gravatar Colin McDonnell 2-1/+1 2023-10-14fix(net/tls) fix pg hang on end + hanging on query (#6487)Gravatar Ciro Spaciari 3-8/+36 2023-10-13fix installing dependencies that match workspace versions (#6494)Gravatar Dylan Conway 4-2/+64 2023-10-13fix lockfile struct padding (#6495)Gravatar Dylan Conway 3-3/+18