forwardemail / forwardemail/superagent

Test servers never close

Open
#1,522 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
16.6k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Hi,

when trying to reproduce build, tests never end. I had to add this:
```diff
--- a/test/support/server.js
+++ b/test/support/server.js
@@ -579,4 +579,7 @@
});

const server = http.createServer(app);
+
+setTimeout(function(){server.close()},60000);
+
server.listen(process.env.ZUUL_PORT);
--- a/test/node/agency.js
+++ b/test/node/agency.js
@@ -67,6 +67,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/https.js
+++ b/test/node/https.js
@@ -66,6 +66,7 @@
app
);
}
+ setTimeout(server.close,10000);

server.listen(0, function listening() {
testEndpoint = `${base}:${server.address().port}`;
@@ -157,6 +158,7 @@
app
);
}
+ setTimeout(server.close,10000);

server.listen(0, function listening() {
testEndpoint = `${base}:${server.address().port}`;
--- a/test/node/inflate.js
+++ b/test/node/inflate.js
@@ -20,6 +20,7 @@

before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/network-error.js
+++ b/test/node/network-error.js
@@ -6,6 +6,7 @@

function getFreePort(fn) {
const server = net.createServer();
+ setTimeout(server.close,10000);
server.listen(0, () => {
const { port } = server.address();
server.close(() => {
--- a/test/node/pipe.js
+++ b/test/node/pipe.js
@@ -40,6 +40,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/query.js
+++ b/test/node/query.js
@@ -35,6 +35,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/redirects-other-host.js
+++ b/test/node/redirects-other-host.js
@@ -16,6 +16,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
@@ -26,6 +27,7 @@
let server2;
before(function listen(done) {
server2 = http.createServer(app2);
+ setTimeout(server2.close,10000);
server2 = server2.listen(0, function listening() {
base2 += `:${server2.address().port}`;
done();
--- a/test/node/response-readable-stream.js
+++ b/test/node/response-readable-stream.js
@@ -18,6 +18,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/set-host.js
+++ b/test/node/set-host.js
@@ -28,6 +28,7 @@
});

server = http.createServer(app);
+ setTimeout(server.close,10000);
server.listen(0, function listening() {
request
.get(`http://localhost:${server.address().port}`)
--- a/test/node/toError.js
+++ b/test/node/toError.js
@@ -18,6 +18,7 @@
let server;
before(function listen(done) {
server = http.createServer(app);
+ setTimeout(server.close,10000);
server = server.listen(0, function listening() {
base += `:${server.address().port}`;
done();
--- a/test/node/unix-sockets.js
+++ b/test/node/unix-sockets.js
@@ -42,6 +42,7 @@
}

httpServer = http.createServer(app);
+ setTimeout(httpServer.close,10000);
httpServer.listen(httpSockPath, done);
});

@@ -88,6 +89,7 @@
} else {
httpsServer = https.createServer({ key, cert }, app);
}
+ setTimeout(httpServer.close,10000);

httpsServer.listen(httpsSockPath, done);
});
```
Tested with node 10 an 12.10

Contributor guide

Open the contributing guide

Research direction

Start with test/support/server.js and the listed test/node files, focusing on how each HTTP, HTTPS, or socket server is created and closed. Reproduce the hanging test run on Node 10 or 12.10, then verify that the affected servers shut down and the test process exits without timeout workarounds.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.