aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/bun-server.test.ts
blob: 98554dfbb6745c5f4a332a491588bdad79d61e11 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import { describe, expect, test } from "bun:test";

describe("Server", () => {
  test("returns active port when initializing server with 0 port", () => {
    const server = Bun.serve({
      fetch() {
        return new Response("Hello");
      },
      port: 0,
    });

    expect(server.port).not.toBe(0);
    expect(server.port).toBeDefined();
    server.stop();
  });

  test("allows connecting to server", async () => {
    const server = Bun.serve({
      fetch() {
        return new Response("Hello");
      },
      port: 0,
    });

    const response = await fetch(`http://${server.hostname}:${server.port}`);
    expect(await response.text()).toBe("Hello");
    server.stop();
  });

  test('abort signal on server', async ()=> {
    {
      let signalOnServer = false;
      const server = Bun.serve({
        async fetch(req) {
          req.signal.addEventListener("abort", () => {
            signalOnServer = true;
          });
          await Bun.sleep(3000);
          return new Response("Hello");
        },
        port: 54321,
      });
    
      try {
        await fetch("http://localhost:54321", { signal: AbortSignal.timeout(100) });
      } catch {}
      await Bun.sleep(300);
      expect(signalOnServer).toBe(true);
      server.stop();
    }
    
  })
});