diff --git a/CHANGELOG.md b/CHANGELOG.md index 88f5875413..684d53e682 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,7 +48,7 @@ _This release is scheduled to be released on 2023-04-01._ - Yr wind direction is no longer inverted - Fix async node_helper stopping electron start (#2487) - The wind direction arrow now points in the direction the wind is flowing, not into the wind (#3019) -- Fix precipitation css styles +- Fix precipitation css styles and rounding value ## [2.22.0] - 2023-01-01 diff --git a/js/server_functions.js b/js/server_functions.js index f210a8b848..fe56cca0aa 100644 --- a/js/server_functions.js +++ b/js/server_functions.js @@ -14,7 +14,7 @@ function getConfig(req, res) { } /** - * A method that forewards HTTP Get-methods to the internet to avoid CORS-errors. + * A method that forwards HTTP Get-methods to the internet to avoid CORS-errors. * * Example input request url: /cors?sendheaders=header1:value1,header2:value2&expectedheaders=header1,header2&url=http://www.test.com/path?param1=value1 * @@ -26,7 +26,7 @@ function getConfig(req, res) { async function cors(req, res) { try { const urlRegEx = "url=(.+?)$"; - let url = ""; + let url; const match = new RegExp(urlRegEx, "g").exec(req.url); if (!match) { @@ -56,7 +56,7 @@ async function cors(req, res) { } /** - * Gets headers and values to attatch to the web request. + * Gets headers and values to attach to the web request. * * @param {string} url - The url containing the headers and values to send. * @returns {object} An object specifying name and value of the headers. diff --git a/modules/default/utils.js b/modules/default/utils.js index fb2cab8f31..604ab0431f 100644 --- a/modules/default/utils.js +++ b/modules/default/utils.js @@ -5,8 +5,8 @@ * @param {string} type what contenttype to expect in the response, can be "json" or "xml" * @param {boolean} useCorsProxy A flag to indicate * @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send - * @param {Array.} expectedResponseHeaders the expected HTTP headers to recieve - * @returns {Promise} resolved when the fetch is done. The response headers is placed in a headers-property (provided the response does not allready contain a headers-property). + * @param {Array.} expectedResponseHeaders the expected HTTP headers to receive + * @returns {Promise} resolved when the fetch is done. The response headers is placed in a headers-property (provided the response does not already contain a headers-property). */ async function performWebRequest(url, type = "json", useCorsProxy = false, requestHeaders = undefined, expectedResponseHeaders = undefined) { const request = {}; @@ -36,7 +36,7 @@ async function performWebRequest(url, type = "json", useCorsProxy = false, reque * * @param {string} url the url to fetch from * @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send - * @param {Array.} expectedResponseHeaders the expected HTTP headers to recieve + * @param {Array.} expectedResponseHeaders the expected HTTP headers to receive * @returns {string} to be used as URL when calling CORS-method on server. */ const getCorsUrl = function (url, requestHeaders, expectedResponseHeaders) { @@ -84,7 +84,7 @@ const getRequestHeaderString = function (requestHeaders) { }; /** - * Gets headers and values to attatch to the web request. + * Gets headers and values to attach to the web request. * * @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send * @returns {object} An object specifying name and value of the headers. @@ -101,9 +101,9 @@ const getHeadersToSend = (requestHeaders) => { }; /** - * Gets the part of the CORS URL that represents the expected HTTP headers to recieve. + * Gets the part of the CORS URL that represents the expected HTTP headers to receive. * - * @param {Array.} expectedResponseHeaders the expected HTTP headers to recieve + * @param {Array.} expectedResponseHeaders the expected HTTP headers to receive * @returns {string} to be used as the expected HTTP-headers component in CORS URL. */ const getExpectedResponseHeadersString = function (expectedResponseHeaders) { @@ -124,7 +124,7 @@ const getExpectedResponseHeadersString = function (expectedResponseHeaders) { /** * Gets the values for the expected headers from the response. * - * @param {Array.} expectedResponseHeaders the expected HTTP headers to recieve + * @param {Array.} expectedResponseHeaders the expected HTTP headers to receive * @param {Response} response the HTTP response * @returns {string} to be used as the expected HTTP-headers component in CORS URL. */ diff --git a/modules/default/weather/providers/openweathermap.js b/modules/default/weather/providers/openweathermap.js index 36d80b6936..d4ecf06e95 100644 --- a/modules/default/weather/providers/openweathermap.js +++ b/modules/default/weather/providers/openweathermap.js @@ -145,9 +145,9 @@ WeatherProvider.register("openweathermap", { */ generateWeatherObjectsFromForecast(forecasts) { if (this.config.weatherEndpoint === "/forecast") { - return this.fetchForecastHourly(forecasts); + return this.generateForecastHourly(forecasts); } else if (this.config.weatherEndpoint === "/forecast/daily") { - return this.fetchForecastDaily(forecasts); + return this.generateForecastDaily(forecasts); } // if weatherEndpoint does not match forecast or forecast/daily, what should be returned? return [new WeatherObject()]; @@ -165,9 +165,10 @@ WeatherProvider.register("openweathermap", { }, /* - * fetch forecast information for 3-hourly forecast (available for free subscription). + * Generate forecast information for 3-hourly forecast (available for free + * subscription). */ - fetchForecastHourly(forecasts) { + generateForecastHourly(forecasts) { // initial variable declaration const days = []; // variables for temperature range and rain @@ -238,9 +239,10 @@ WeatherProvider.register("openweathermap", { }, /* - * fetch forecast information for daily forecast (available for paid subscription or old apiKey). + * Generate forecast information for daily forecast (available for paid + * subscription or old apiKey). */ - fetchForecastDaily(forecasts) { + generateForecastDaily(forecasts) { // initial variable declaration const days = []; diff --git a/modules/default/weather/weatherutils.js b/modules/default/weather/weatherutils.js index 69c4bbca20..42b5da1ec9 100644 --- a/modules/default/weather/weatherutils.js +++ b/modules/default/weather/weatherutils.js @@ -40,7 +40,7 @@ const WeatherUtils = { valueUnit = valueUnit ? valueUnit : "mm"; } - if (valueUnit === "%") return `${value}${valueUnit}`; + if (valueUnit === "%") return `${value.toFixed(0)} ${valueUnit}`; return `${value.toFixed(2)} ${valueUnit}`; }, diff --git a/tests/e2e/modules/weather_hourly_spec.js b/tests/e2e/modules/weather_hourly_spec.js index a4f5c17d72..3a5f03f138 100644 --- a/tests/e2e/modules/weather_hourly_spec.js +++ b/tests/e2e/modules/weather_hourly_spec.js @@ -51,7 +51,7 @@ describe("Weather module: Weather Hourly Forecast", () => { }); describe("Shows precipitation probability", () => { - const propabilities = [undefined, undefined, "12%", "36%", "44%"]; + const propabilities = [undefined, undefined, "12 %", "36 %", "44 %"]; for (const [index, pop] of propabilities.entries()) { if (pop) { it(`should render probability ${pop}`, async () => {