mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 19:53:36 +00:00
When trying to debug why the tests broke for https://github.com/MichMich/MagicMirror/pull/2946 I found that the tests does not wait for the app to start and close. So if the startup isn't blocking that would fail. So I added a callback for `close()` too and converted them to promises for the `startApplication()` and `stopApplication()` and updated all the e2e tests to await both. Will try to refactor all these callbacks to promises in a later PR.
30 lines
1008 B
JavaScript
30 lines
1008 B
JavaScript
const helpers = require("./global-setup");
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
const { generateWeather, generateWeatherForecast } = require("../../mocks/weather_test");
|
|
|
|
exports.getText = async (element, result) => {
|
|
const elem = await helpers.waitForElement(element);
|
|
expect(elem).not.toBe(null);
|
|
expect(
|
|
elem.textContent
|
|
.trim()
|
|
.replace(/(\r\n|\n|\r)/gm, "")
|
|
.replace(/[ ]+/g, " ")
|
|
).toBe(result);
|
|
};
|
|
|
|
exports.startApp = async (configFile, additionalMockData) => {
|
|
let mockWeather;
|
|
if (configFile.includes("forecast")) {
|
|
mockWeather = generateWeatherForecast(additionalMockData);
|
|
} else {
|
|
mockWeather = generateWeather(additionalMockData);
|
|
}
|
|
let content = fs.readFileSync(path.resolve(__dirname + "../../../../" + configFile)).toString();
|
|
content = content.replace("#####WEATHERDATA#####", mockWeather);
|
|
fs.writeFileSync(path.resolve(__dirname + "../../../../config/config.js"), content);
|
|
await helpers.startApplication("");
|
|
await helpers.getDocument();
|
|
};
|