Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 25 additions & 92 deletions test/js/node/net/node-net-server.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@ describe("net.createServer listen", () => {
done();
});

// No secondary setTimeout deadline: the test runner already bounds each test,
// and a real listen failure reaches done() via the 'error' listener below.
const failOnError = (server: Server, done: (err?: unknown) => void) => (err: unknown) => {
server.close();
done(err);
};

it("should listen on IPv6 by default", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();
let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
0,
Expand All @@ -46,18 +46,10 @@ describe("net.createServer listen", () => {
});

it("should listen on IPv4", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
0,
Expand All @@ -75,73 +67,45 @@ describe("net.createServer listen", () => {
});

it("should call listening", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};

server.on("error", closeAndFail).on(
server.on("error", failOnError(server, done)).on(
"listening",
mustCall(() => {
clearTimeout(timeout);
server.close();
done();
}),
);

timeout = setTimeout(closeAndFail, 100);

server.listen(0, "0.0.0.0");
});

it("should provide listening property", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();
expect(server.listening).toBeFalse();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};

server.on("error", closeAndFail).on(
server.on("error", failOnError(server, done)).on(
"listening",
mustCall(() => {
expect(server.listening).toBeTrue();
clearTimeout(timeout);
server.close();
expect(server.listening).toBeFalse();
done();
}),
);

timeout = setTimeout(closeAndFail, 100);

server.listen(0, "0.0.0.0");
});

it("should listen on localhost", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
0,
Expand All @@ -159,18 +123,10 @@ describe("net.createServer listen", () => {
});

it("should listen on localhost", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
0,
Expand All @@ -186,18 +142,10 @@ describe("net.createServer listen", () => {
});

it("should listen without port or host", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
mustCall(() => {
Expand All @@ -213,18 +161,10 @@ describe("net.createServer listen", () => {
});

it("should listen on unix domain socket", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();

let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
socket_domain,
Expand All @@ -238,17 +178,10 @@ describe("net.createServer listen", () => {
});

it("should bind IPv4 0.0.0.0 when listen on 0.0.0.0, issue#7355", done => {
const { mustCall, mustNotCall } = createCallCheckCtx(done);
const { mustCall } = createCallCheckCtx(done);

const server: Server = createServer();
let timeout: Timer;
const closeAndFail = () => {
clearTimeout(timeout);
server.close();
mustNotCall()();
};
server.on("error", closeAndFail);
timeout = setTimeout(closeAndFail, 100);
server.on("error", failOnError(server, done));

server.listen(
0,
Expand Down
Loading