forwardemail / forwardemail/superagent
Test servers never close
- 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
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