/
get-port.test.js
55 lines (48 loc) · 1.49 KB
/
get-port.test.js
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
54
55
"use strict";
const net = require("net");
const util = require("util");
const getPort = require("../../lib/getPort");
it("it should bind to the preferred port", async () => {
const preferredPort = 8080;
const port = await getPort(8080);
expect(port).toBe(preferredPort);
});
it("should pick the next port if the preferred port is unavailable", async () => {
const preferredPort = 8345;
const server = net.createServer();
server.unref();
await util.promisify(server.listen.bind(server))(preferredPort);
const port = await getPort(preferredPort);
server.close();
expect(port).toBe(preferredPort + 1);
});
it("should reject privileged ports", async () => {
try {
await getPort(80);
} catch (e) {
expect(e.message).toBeDefined();
}
});
it("should reject too high port numbers", async () => {
try {
await getPort(65536);
} catch (e) {
expect(e.message).toBeDefined();
}
});
describe("when passing a host", () => {
it("should bind to the preferred port", async () => {
const preferredPort = 8080;
const port = await getPort(8080, "127.0.0.1");
expect(port).toBe(preferredPort);
});
it("should pick the next port if the preferred port is unavailable", async () => {
const preferredPort = 8345;
const server = net.createServer();
server.unref();
await util.promisify(server.listen.bind(server))(preferredPort);
const port = await getPort(preferredPort, "0.0.0.0");
server.close();
expect(port).toBe(preferredPort + 1);
});
});