Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,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

Expand Down
6 changes: 3 additions & 3 deletions js/server_functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand All @@ -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) {
Expand Down Expand Up @@ -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.
Expand Down
14 changes: 7 additions & 7 deletions modules/default/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.<string>} 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.<string>} 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 = {};
Expand Down Expand Up @@ -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.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} 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) {
Expand Down Expand Up @@ -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.
Expand All @@ -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.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} 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) {
Expand All @@ -124,7 +124,7 @@ const getExpectedResponseHeadersString = function (expectedResponseHeaders) {
/**
* Gets the values for the expected headers from the response.
*
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} 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.
*/
Expand Down
14 changes: 8 additions & 6 deletions modules/default/weather/providers/openweathermap.js
Original file line number Diff line number Diff line change
Expand Up @@ -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()];
Expand All @@ -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
Expand Down Expand Up @@ -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 = [];

Expand Down
2 changes: 1 addition & 1 deletion modules/default/weather/weatherutils.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}`;
},
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/modules/weather_hourly_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down