From bc7ad36833e6589cf2c5eb9284189622db2571b2 Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Mon, 9 Dec 2019 11:23:58 +0000 Subject: [PATCH 1/3] fix: handle err on both start and stop echo-server --- src/utils/echo-http-server.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/utils/echo-http-server.js b/src/utils/echo-http-server.js index 8e7f059e..8f32b11b 100644 --- a/src/utils/echo-http-server.js +++ b/src/utils/echo-http-server.js @@ -44,10 +44,12 @@ module.exports.createServer = () => { const server = http.createServer(handler) server.start = (opts) => new Promise( - (resolve) => server.listen(Object.assign({ port: defaultPort, host: '127.0.0.1' }, opts), resolve) + (resolve, reject) => server.listen( + Object.assign({ port: defaultPort, host: '127.0.0.1' }, opts), (err) => err ? reject(err) : resolve() + ) ) - server.stop = () => new Promise((resolve) => server.close(resolve)) + server.stop = () => new Promise((resolve, reject) => server.close((err) => err ? reject(err) : resolve())) return server } From fa7cebc013820140b775005299766572f48143ee Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Wed, 11 Dec 2019 11:03:52 +0000 Subject: [PATCH 2/3] fix: add 'error' event to both server start and close --- src/utils/echo-http-server.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/utils/echo-http-server.js b/src/utils/echo-http-server.js index 8f32b11b..ef3b2130 100644 --- a/src/utils/echo-http-server.js +++ b/src/utils/echo-http-server.js @@ -43,13 +43,21 @@ module.exports.createServer = () => { const server = http.createServer(handler) - server.start = (opts) => new Promise( - (resolve, reject) => server.listen( - Object.assign({ port: defaultPort, host: '127.0.0.1' }, opts), (err) => err ? reject(err) : resolve() - ) - ) + server.start = (opts) => new Promise((resolve, reject) => { + server.once('error', reject) + server.listen(Object.assign({ port: defaultPort, host: '127.0.0.1' }, opts), () => { + server.removeListener('error', reject) + resolve() + }) + }) - server.stop = () => new Promise((resolve, reject) => server.close((err) => err ? reject(err) : resolve())) + server.stop = () => new Promise((resolve, reject) => { + server.once('error', reject) + server.close(() => { + server.removeListener('error', reject) + resolve() + }) + }) return server } From fe0899ef6eb2458740d77715d791a82d8d2710de Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Wed, 11 Dec 2019 12:09:22 +0000 Subject: [PATCH 3/3] chore: code review changes --- src/utils/echo-http-server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/echo-http-server.js b/src/utils/echo-http-server.js index ef3b2130..3cdeabd7 100644 --- a/src/utils/echo-http-server.js +++ b/src/utils/echo-http-server.js @@ -53,9 +53,9 @@ module.exports.createServer = () => { server.stop = () => new Promise((resolve, reject) => { server.once('error', reject) - server.close(() => { + server.close((err) => { server.removeListener('error', reject) - resolve() + err ? reject(err) : resolve() }) })