diff --git a/lib/Server.js b/lib/Server.js index de00af8208..611f0c2045 100644 --- a/lib/Server.js +++ b/lib/Server.js @@ -155,6 +155,10 @@ class Server { } this.sockWrite(this.sockets, 'progress-update', { percent, msg }); + + if (this.listeningApp) { + this.listeningApp.emit('progress-update', { percent, msg }); + } }).apply(this.compiler); } diff --git a/lib/servers/WebsocketServer.js b/lib/servers/WebsocketServer.js index 34002c675a..3021f40341 100644 --- a/lib/servers/WebsocketServer.js +++ b/lib/servers/WebsocketServer.js @@ -31,11 +31,13 @@ module.exports = class WebsocketServer extends BaseServer { const noop = () => {}; setInterval(() => { - this.wsServer.clients.forEach((ws) => { - if (ws.isAlive === false) return ws.terminate(); + this.wsServer.clients.forEach((socket) => { + if (socket.isAlive === false) { + return socket.terminate(); + } - ws.isAlive = false; - ws.ping(noop); + socket.isAlive = false; + socket.ping(noop); }); }, this.server.heartbeatInterval); } diff --git a/test/server/progress-option.test.js b/test/server/progress-option.test.js index 1d0a858ae9..ad2369303a 100644 --- a/test/server/progress-option.test.js +++ b/test/server/progress-option.test.js @@ -46,7 +46,13 @@ describe('progress', () => { }); compiler.run(() => {}); - server.listen(port, 'localhost'); + const app = server.listen(port, 'localhost'); + + app.on('progress-update', ({ percent, msg }) => { + expect(percent).toBeGreaterThanOrEqual(0); + expect(percent).toBeLessThanOrEqual(100); + expect(typeof msg).toEqual('string'); + }); }); }); });