From 3a4bb995e4dff56464a784a8977a3078ee88cd72 Mon Sep 17 00:00:00 2001 From: Matthieu Sieben Date: Thu, 6 May 2021 14:22:08 +0200 Subject: [PATCH 1/3] fix(server): remove un-necessary listener --- packages/server/src/listener.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/server/src/listener.js b/packages/server/src/listener.js index b9491a43b96c..797d8d81bf59 100644 --- a/packages/server/src/listener.js +++ b/packages/server/src/listener.js @@ -75,8 +75,16 @@ export default class Listener { // Call server.listen try { this.server = await new Promise((resolve, reject) => { - this._server.on('error', error => reject(error)) - const s = this._server.listen(listenArgs, error => error ? reject(error) : resolve(s)) + this._server.on('error', reject) + const s = this._server.listen(listenArgs, (error) => { + s.removeListener(reject) + + if (error) { + reject(error) + } else { + resolve(s) + } + }) }) } catch (error) { return this.serverErrorHandler(error) From f2ce8da456bfa84b12bc763cd49fbf69b7c8c90a Mon Sep 17 00:00:00 2001 From: Matthieu Sieben Date: Sat, 15 May 2021 11:38:03 +0200 Subject: [PATCH 2/3] fix(server): remove un-necessary listener --- packages/server/src/listener.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/server/src/listener.js b/packages/server/src/listener.js index 797d8d81bf59..8f9a8ca45bc7 100644 --- a/packages/server/src/listener.js +++ b/packages/server/src/listener.js @@ -75,14 +75,14 @@ export default class Listener { // Call server.listen try { this.server = await new Promise((resolve, reject) => { - this._server.on('error', reject) - const s = this._server.listen(listenArgs, (error) => { - s.removeListener(reject) + this._server.once('error', reject) + this._server.listen(listenArgs, (error) => { + this._server.off('error', reject) if (error) { reject(error) } else { - resolve(s) + resolve(this._server) } }) }) From 3cecf3821d3a2f5c1147c55c2d43f8757faada05 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 22 May 2021 11:19:15 +0100 Subject: [PATCH 3/3] test: update listener test --- packages/server/test/listener.test.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/server/test/listener.test.js b/packages/server/test/listener.test.js index b6c01c78cac9..fa4365e5095e 100644 --- a/packages/server/test/listener.test.js +++ b/packages/server/test/listener.test.js @@ -17,7 +17,8 @@ describe('server: listener', () => { const mockServer = () => { const server = { address: jest.fn(), - on: jest.fn(), + once: jest.fn(), + off: jest.fn(), listen: jest.fn((listenArgs, callback) => { Promise.resolve().then(callback) return server @@ -73,8 +74,8 @@ describe('server: listener', () => { expect(http.createServer).toBeCalledTimes(1) expect(http.createServer).toBeCalledWith(options.app) - expect(server.on).toBeCalledTimes(1) - expect(server.on).toBeCalledWith('error', expect.any(Function)) + expect(server.once).toBeCalledTimes(1) + expect(server.once).toBeCalledWith('error', expect.any(Function)) expect(server.listen).toBeCalledTimes(1) expect(server.listen).toBeCalledWith( { @@ -111,8 +112,8 @@ describe('server: listener', () => { expect(https.createServer).toBeCalledTimes(1) expect(https.createServer).toBeCalledWith(options.https, options.app) - expect(server.on).toBeCalledTimes(1) - expect(server.on).toBeCalledWith('error', expect.any(Function)) + expect(server.once).toBeCalledTimes(1) + expect(server.once).toBeCalledWith('error', expect.any(Function)) expect(server.listen).toBeCalledTimes(1) expect(server.listen).toBeCalledWith( { @@ -150,8 +151,8 @@ describe('server: listener', () => { expect(http.createServer).toBeCalledTimes(1) expect(http.createServer).toBeCalledWith(options.app) - expect(server.on).toBeCalledTimes(1) - expect(server.on).toBeCalledWith('error', expect.any(Function)) + expect(server.once).toBeCalledTimes(1) + expect(server.once).toBeCalledWith('error', expect.any(Function)) expect(server.listen).toBeCalledTimes(1) expect(server.listen).toBeCalledWith( { @@ -204,7 +205,7 @@ describe('server: listener', () => { const serverError = new Error('error occurred') server.listen.mockImplementationOnce((listenArgs, callback) => { Promise.resolve().then(callback) - const errorListener = server.on.mock.calls[0][1] + const errorListener = server.once.mock.calls[0][1] errorListener(serverError) return server })