const path = require("path"); const helmet = require("helmet"); const { JSDOM } = require("jsdom"); const express = require("express"); const sockets = new Set(); describe("Translator", function () { let server; beforeAll(function () { const app = express(); app.use(helmet()); app.use(function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); next(); }); app.use("/translations", express.static(path.join(__dirname, "..", "..", "..", "tests", "configs", "data"))); server = app.listen(3000); server.on("connection", (socket) => { sockets.add(socket); }); }); afterAll(function () { for (const socket of sockets) { socket.destroy(); sockets.delete(socket); } server.close(); }); describe("translate", function () { const translations = { "MMM-Module": { Hello: "Hallo", "Hello {username}": "Hallo {username}" } }; const coreTranslations = { Hello: "XXX", "Hello {username}": "XXX", FOO: "Foo", "BAR {something}": "Bar {something}" }; const translationsFallback = { "MMM-Module": { Hello: "XXX", "Hello {username}": "XXX", FOO: "XXX", "BAR {something}": "XXX", "A key": "A translation" } }; const coreTranslationsFallback = { FOO: "XXX", "BAR {something}": "XXX", Hello: "XXX", "Hello {username}": "XXX", "A key": "XXX", Fallback: "core fallback" }; /** * @param {object} Translator the global Translator object */ function setTranslations(Translator) { Translator.translations = translations; Translator.coreTranslations = coreTranslations; Translator.translationsFallback = translationsFallback; Translator.coreTranslationsFallback = coreTranslationsFallback; } it("should return custom module translation", function (done) { const dom = new JSDOM(`\ \ \ \