From 0ef6f89d441f65002dc592a6c9a97faeb3b9d743 Mon Sep 17 00:00:00 2001 From: Karsten Hassel Date: Fri, 24 Sep 2021 00:30:00 +0200 Subject: [PATCH] fix server.close() issue --- js/server.js | 11 +++++++++++ tests/e2e/modules_display_spec.js | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/js/server.js b/js/server.js index 35071091..92607d39 100644 --- a/js/server.js +++ b/js/server.js @@ -23,6 +23,7 @@ const Utils = require("./utils.js"); */ function Server(config, callback) { const port = process.env.MM_PORT || config.port; + const serverSockets = new Set(); let server = null; if (config.useHttps) { @@ -42,6 +43,13 @@ function Server(config, callback) { allowEIO3: true }); + server.on("connection", (socket) => { + serverSockets.add(socket); + socket.on("close", () => { + serverSockets.delete(socket); + }); + }); + Log.log(`Starting server on port ${port} ... `); server.listen(port, config.address || "localhost"); @@ -94,6 +102,9 @@ function Server(config, callback) { } this.close = function () { + for (const socket of serverSockets.values()) { + socket.destroy(); + } server.close(); }; } diff --git a/tests/e2e/modules_display_spec.js b/tests/e2e/modules_display_spec.js index 1264ad5a..865748cd 100644 --- a/tests/e2e/modules_display_spec.js +++ b/tests/e2e/modules_display_spec.js @@ -13,8 +13,8 @@ describe("Display of modules", function () { it("should show the test header", function () { elem = document.querySelector("#module_0_helloworld .module-header"); expect(elem).not.toBe(null); + // textContent gibt hier lowercase zurück, das uppercase wird durch css realisiert, was daher nicht in textContent landet expect(elem.textContent).toBe("test_header"); - //result ist leider lowercase wegen fehlendem css, siehe https://stackoverflow.com/questions/10318330/how-do-you-add-stylesheets-to-jsdom }); it("should show no header if no header text is specified", function () {