Refactor mock-data for weather-tests generation (#3000)

Refactored the mock data generation for the tests so we can use plain
JSON files for the data and read it in a more general way.

Comments welcome!

Co-authored-by: veeck <michael@veeck.de>
This commit is contained in:
Veeck 2023-01-11 21:47:20 +01:00 committed by GitHub
parent 6e80e5a295
commit 877f8ad380
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1475 additions and 1392 deletions

View File

@ -12,6 +12,7 @@ _This release is scheduled to be released on 2023-04-01._
### Added
- Added increments for hourly forecasts in weather module (#2996)
- Added tests for hourly weather forecast
### Removed

View File

@ -2,7 +2,7 @@ module.exports = async () => {
return {
verbose: true,
testTimeout: 20000,
testSequencer: "<rootDir>/tests/configs/test_sequencer.js",
testSequencer: "<rootDir>/tests/utils/test_sequencer.js",
projects: [
{
displayName: "unit",

112
package-lock.json generated
View File

@ -27,17 +27,17 @@
"socket.io": "^4.5.4"
},
"devDependencies": {
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest": "^27.2.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-jsdoc": "^39.6.4",
"eslint-plugin-prettier": "^4.2.1",
"express-basic-auth": "^1.2.1",
"husky": "^8.0.2",
"husky": "^8.0.3",
"jest": "^29.3.1",
"jsdom": "^20.0.3",
"jsdom": "^21.0.0",
"lodash": "^4.17.21",
"playwright": "^1.29.1",
"prettier": "^2.8.1",
"playwright": "^1.29.2",
"prettier": "^2.8.2",
"pretty-quick": "^3.1.3",
"sinon": "^15.0.1",
"stylelint": "^14.16.1",
@ -3125,9 +3125,9 @@
}
},
"node_modules/eslint-config-prettier": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
"integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@ -3137,9 +3137,9 @@
}
},
"node_modules/eslint-plugin-jest": {
"version": "27.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.0.tgz",
"integrity": "sha512-KGIYtelk4rIhKocxRKUEeX+kJ0ZCab/CiSgS8BMcKD7AY7YxXhlg/d51oF5jq2rOrtuJEDYWRwXD95l6l2vtrA==",
"version": "27.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz",
"integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==",
"dev": true,
"dependencies": {
"@typescript-eslint/utils": "^5.10.0"
@ -4233,9 +4233,9 @@
}
},
"node_modules/husky": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz",
"integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
"integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
"dev": true,
"bin": {
"husky": "lib/bin.js"
@ -5194,9 +5194,9 @@
}
},
"node_modules/jsdom": {
"version": "20.0.3",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
"integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
"version": "21.0.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.0.0.tgz",
"integrity": "sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA==",
"dev": true,
"dependencies": {
"abab": "^2.0.6",
@ -5420,9 +5420,9 @@
}
},
"node_modules/luxon": {
"version": "1.28.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz",
"integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==",
"version": "1.28.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz",
"integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==",
"engines": {
"node": "*"
}
@ -6252,13 +6252,13 @@
}
},
"node_modules/playwright": {
"version": "1.29.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.29.1.tgz",
"integrity": "sha512-lasC+pMqsQ2uWhNurt3YK3xo0gWlMjslYUylKbHcqF/NTjwp9KStRGO7S6wwz2f52GcSnop8XUK/GymJjdzrxw==",
"version": "1.29.2",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.29.2.tgz",
"integrity": "sha512-hKBYJUtdmYzcjdhYDkP9WGtORwwZBBKAW8+Lz7sr0ZMxtJr04ASXVzH5eBWtDkdb0c3LLFsehfPBTRfvlfKJOA==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
"playwright-core": "1.29.1"
"playwright-core": "1.29.2"
},
"bin": {
"playwright": "cli.js"
@ -6268,9 +6268,9 @@
}
},
"node_modules/playwright-core": {
"version": "1.29.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.29.1.tgz",
"integrity": "sha512-20Ai3d+lMkWpI9YZYlxk8gxatfgax5STW8GaMozAHwigLiyiKQrdkt7gaoT9UQR8FIVDg6qVXs9IoZUQrDjIIg==",
"version": "1.29.2",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.29.2.tgz",
"integrity": "sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==",
"dev": true,
"bin": {
"playwright": "cli.js"
@ -6359,9 +6359,9 @@
}
},
"node_modules/prettier": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
"integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
"integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
@ -10598,16 +10598,16 @@
}
},
"eslint-config-prettier": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
"integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
"dev": true,
"requires": {}
},
"eslint-plugin-jest": {
"version": "27.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.0.tgz",
"integrity": "sha512-KGIYtelk4rIhKocxRKUEeX+kJ0ZCab/CiSgS8BMcKD7AY7YxXhlg/d51oF5jq2rOrtuJEDYWRwXD95l6l2vtrA==",
"version": "27.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz",
"integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==",
"dev": true,
"requires": {
"@typescript-eslint/utils": "^5.10.0"
@ -11413,9 +11413,9 @@
"dev": true
},
"husky": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz",
"integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
"integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
"dev": true
},
"iconv-lite": {
@ -12135,9 +12135,9 @@
"dev": true
},
"jsdom": {
"version": "20.0.3",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
"integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
"version": "21.0.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.0.0.tgz",
"integrity": "sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA==",
"dev": true,
"requires": {
"abab": "^2.0.6",
@ -12317,9 +12317,9 @@
}
},
"luxon": {
"version": "1.28.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz",
"integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ=="
"version": "1.28.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz",
"integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw=="
},
"make-dir": {
"version": "3.1.0",
@ -12936,18 +12936,18 @@
}
},
"playwright": {
"version": "1.29.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.29.1.tgz",
"integrity": "sha512-lasC+pMqsQ2uWhNurt3YK3xo0gWlMjslYUylKbHcqF/NTjwp9KStRGO7S6wwz2f52GcSnop8XUK/GymJjdzrxw==",
"version": "1.29.2",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.29.2.tgz",
"integrity": "sha512-hKBYJUtdmYzcjdhYDkP9WGtORwwZBBKAW8+Lz7sr0ZMxtJr04ASXVzH5eBWtDkdb0c3LLFsehfPBTRfvlfKJOA==",
"dev": true,
"requires": {
"playwright-core": "1.29.1"
"playwright-core": "1.29.2"
}
},
"playwright-core": {
"version": "1.29.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.29.1.tgz",
"integrity": "sha512-20Ai3d+lMkWpI9YZYlxk8gxatfgax5STW8GaMozAHwigLiyiKQrdkt7gaoT9UQR8FIVDg6qVXs9IoZUQrDjIIg==",
"version": "1.29.2",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.29.2.tgz",
"integrity": "sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==",
"dev": true
},
"postcss": {
@ -13002,9 +13002,9 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prettier": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
"integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
"integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
"dev": true
},
"prettier-linter-helpers": {

View File

@ -49,17 +49,17 @@
},
"homepage": "https://magicmirror.builders",
"devDependencies": {
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest": "^27.2.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-jsdoc": "^39.6.4",
"eslint-plugin-prettier": "^4.2.1",
"express-basic-auth": "^1.2.1",
"husky": "^8.0.2",
"husky": "^8.0.3",
"jest": "^29.3.1",
"jsdom": "^20.0.3",
"jsdom": "^21.0.0",
"lodash": "^4.17.21",
"playwright": "^1.29.1",
"prettier": "^2.8.1",
"playwright": "^1.29.2",
"prettier": "^2.8.2",
"pretty-quick": "^3.1.3",
"sinon": "^15.0.1",
"stylelint": "^14.16.1",

View File

@ -1,7 +1,5 @@
const helpers = require("./global-setup");
const path = require("path");
const fs = require("fs");
const { generateWeather, generateWeatherForecast, generateWeatherHourly } = require("../../mocks/weather_test");
const { injectMockData } = require("../../utils/weather_mocker");
exports.getText = async (element, result) => {
const elem = await helpers.waitForElement(element);
@ -14,18 +12,8 @@ exports.getText = async (element, result) => {
).toBe(result);
};
exports.startApp = async (configFile, additionalMockData) => {
let mockWeather;
if (configFile.includes("forecast")) {
mockWeather = generateWeatherForecast(additionalMockData);
} else if (configFile.includes("hourly")) {
mockWeather = generateWeatherHourly(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);
exports.startApp = async (configFileName, additionalMockData) => {
injectMockData(configFileName, additionalMockData);
await helpers.startApplication("");
await helpers.getDocument();
};

View File

@ -1,7 +1,5 @@
const helpers = require("./global-setup");
const path = require("path");
const fs = require("fs");
const { generateWeather, generateWeatherForecast, generateWeatherHourly } = require("../../mocks/weather_test");
const { injectMockData } = require("../../utils/weather_mocker");
exports.getText = async (element, result) => {
const elem = await helpers.getElement(element);
@ -15,17 +13,7 @@ exports.getText = async (element, result) => {
).toBe(result);
};
exports.startApp = async (configFile, systemDate) => {
let mockWeather;
if (configFile.includes("forecast")) {
mockWeather = generateWeatherForecast();
} else if (configFile.includes("hourly")) {
mockWeather = generateWeatherHourly();
} else {
mockWeather = generateWeather();
}
let content = fs.readFileSync(path.resolve(__dirname + "../../../../" + configFile)).toString();
content = content.replace("#####WEATHERDATA#####", mockWeather);
fs.writeFileSync(path.resolve(__dirname + "../../../../config/config.js"), content);
exports.startApp = async (configFileNameName, systemDate) => {
injectMockData(configFileNameName);
await helpers.startApplication("", systemDate);
};

View File

@ -0,0 +1,48 @@
{
"coord": {
"lon": 11.58,
"lat": 48.14
},
"weather": [
{
"id": 615,
"main": "Snow",
"description": "light rain and snow",
"icon": "13d"
},
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"base": "stations",
"main": {
"temp": 1.49,
"pressure": 1005,
"humidity": 93.7,
"temp_min": 1,
"temp_max": 2
},
"visibility": 7000,
"wind": {
"speed": 11.8,
"deg": 250
},
"clouds": {
"all": 75
},
"dt": 1547387400,
"sys": {
"type": 1,
"id": 1267,
"message": 0.0031,
"country": "DE",
"sunrise": 1547362817,
"sunset": 1547394301
},
"id": 2867714,
"name": "Munich",
"cod": 200
}

View File

@ -0,0 +1,200 @@
{
"city": {
"id": 2867714,
"name": "Munich",
"coord": {
"lon": 11.5754,
"lat": 48.1371
},
"country": "DE",
"population": 1260391,
"timezone": 7200
},
"cod": "200",
"message": 0.9653487,
"cnt": 7,
"list": [
{
"dt": 1568372400,
"sunrise": 1568350044,
"sunset": 1568395948,
"temp": {
"day": 24.44,
"min": 15.35,
"max": 24.44,
"night": 15.35,
"eve": 18,
"morn": 23.03
},
"pressure": 1031.65,
"humidity": 70,
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02d"
}
],
"speed": 3.35,
"deg": 314,
"clouds": 21
},
{
"dt": 1568458800,
"sunrise": 1568436525,
"sunset": 1568482223,
"temp": {
"day": 20.81,
"min": 13.56,
"max": 21.02,
"night": 13.56,
"eve": 16.6,
"morn": 15.88
},
"pressure": 1028.81,
"humidity": 72,
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"speed": 2.21,
"deg": 81,
"clouds": 100
},
{
"dt": 1568545200,
"sunrise": 1568523007,
"sunset": 1568568497,
"temp": {
"day": 22.65,
"min": 13.76,
"max": 22.88,
"night": 15.27,
"eve": 17.45,
"morn": 13.76
},
"pressure": 1023.75,
"humidity": 64,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "sky is clear",
"icon": "01d"
}
],
"speed": 1.15,
"deg": 7,
"clouds": 0
},
{
"dt": 1568631600,
"sunrise": 1568609489,
"sunset": 1568654771,
"temp": {
"day": 23.45,
"min": 13.95,
"max": 23.45,
"night": 13.95,
"eve": 17.75,
"morn": 15.21
},
"pressure": 1020.41,
"humidity": 64,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "sky is clear",
"icon": "01d"
}
],
"speed": 3.07,
"deg": 298,
"clouds": 7
},
{
"dt": 1568718000,
"sunrise": 1568695970,
"sunset": 1568741045,
"temp": {
"day": 20.55,
"min": 10.95,
"max": 20.55,
"night": 10.95,
"eve": 14.82,
"morn": 13.24
},
"pressure": 1019.4,
"humidity": 66,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "sky is clear",
"icon": "01d"
}
],
"speed": 2.8,
"deg": 333,
"clouds": 2
},
{
"dt": 1568804400,
"sunrise": 1568782452,
"sunset": 1568827319,
"temp": {
"day": 18.15,
"min": 7.75,
"max": 18.15,
"night": 7.75,
"eve": 12.45,
"morn": 9.41
},
"pressure": 1017.56,
"humidity": 52,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "sky is clear",
"icon": "01d"
}
],
"speed": 2.92,
"deg": 34,
"clouds": 0
},
{
"dt": 1568890800,
"sunrise": 1568868934,
"sunset": 1568913593,
"temp": {
"day": 14.85,
"min": 5.56,
"max": 15.05,
"night": 5.56,
"eve": 9.56,
"morn": 6.25
},
"pressure": 1022.7,
"humidity": 59,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "sky is clear",
"icon": "01d"
}
],
"speed": 2.89,
"deg": 51,
"clouds": 1
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
const _ = require("lodash");
const fs = require("fs");
const path = require("path");
/**
* @param {string} type what data to read, can be "current" "forecast" or "hourly
* @param {object} extendedData extra data to add to the default mock data
* @returns {string} mocked current weather data
*/
const readMockData = (type, extendedData = {}) => {
let fileName;
switch (type) {
case "forecast":
fileName = "weather_forecast.json";
break;
case "hourly":
fileName = "weather_hourly.json";
break;
case "current":
default:
fileName = "weather_current.json";
break;
}
return JSON.stringify(_.merge({}, JSON.parse(fs.readFileSync(path.resolve(__dirname + "/../mocks/" + fileName)).toString()), extendedData));
};
const injectMockData = (configFileName, extendedData = {}) => {
let mockWeather;
if (configFileName.includes("forecast")) {
mockWeather = readMockData("forecast", extendedData);
} else if (configFileName.includes("hourly")) {
mockWeather = readMockData("hourly", extendedData);
} else {
mockWeather = readMockData("current", extendedData);
}
let content = fs.readFileSync(path.resolve(__dirname + "../../../" + configFileName)).toString();
content = content.replace("#####WEATHERDATA#####", mockWeather);
fs.writeFileSync(path.resolve(__dirname + "../../../config/config.js"), content);
};
module.exports = { injectMockData };