Skip to content

Commit 4a398f0

Browse files
rejasveeck
and
veeck
authored
Fix empty part-of-day logic (#3726)
Fixes #3727 --------- Co-authored-by: veeck <[email protected]>
1 parent 28bcee7 commit 4a398f0

File tree

7 files changed

+60
-27
lines changed

7 files changed

+60
-27
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ planned for 2025-04-01
4242
- [core] Fix wrong port in log message when starting server only (#3696)
4343
- [calendar] Fix NewYork event processed on system in Central timezone shows wrong time #3701
4444
- [weather/yr] The Yr weather provider is now able to recover from bad API responses instead of freezing (#3296)
45+
- [compliments] Fix evening events being shown during the day (#3727)
4546

4647
## [2.30.0] - 2025-01-01
4748

modules/default/compliments/compliments.js

+11-6
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,17 @@ Module.register("compliments", {
139139
let compliments = [];
140140

141141
// Add time of day compliments
142-
if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.compliments.hasOwnProperty("morning")) {
143-
compliments = [...this.config.compliments.morning];
144-
} else if (hour >= this.config.afternoonStartTime && hour < this.config.afternoonEndTime && this.config.compliments.hasOwnProperty("afternoon")) {
145-
compliments = [...this.config.compliments.afternoon];
146-
} else if (this.config.compliments.hasOwnProperty("evening")) {
147-
compliments = [...this.config.compliments.evening];
142+
let timeOfDay;
143+
if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime) {
144+
timeOfDay = "morning";
145+
} else if (hour >= this.config.afternoonStartTime && hour < this.config.afternoonEndTime) {
146+
timeOfDay = "afternoon";
147+
} else {
148+
timeOfDay = "evening";
149+
}
150+
151+
if (timeOfDay && this.config.compliments.hasOwnProperty(timeOfDay)) {
152+
compliments = [...this.config.compliments[timeOfDay]];
148153
}
149154

150155
// Add compliments based on weather

package-lock.json

+11-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
},
6464
"dependencies": {
6565
"ajv": "^8.17.1",
66-
"ansis": "^3.10.0",
66+
"ansis": "^3.16.0",
6767
"console-stamp": "^3.1.2",
6868
"envsub": "^4.1.0",
6969
"eslint": "^9.21.0",
@@ -83,8 +83,8 @@
8383
"undici": "^7.3.0"
8484
},
8585
"devDependencies": {
86-
"@stylistic/eslint-plugin": "^4.0.1",
87-
"cspell": "^8.17.3",
86+
"@stylistic/eslint-plugin": "^4.1.0",
87+
"cspell": "^8.17.5",
8888
"eslint-plugin-import": "^2.31.0",
8989
"eslint-plugin-jest": "^28.11.0",
9090
"eslint-plugin-jsdoc": "^50.6.3",
@@ -96,7 +96,7 @@
9696
"lint-staged": "^15.4.3",
9797
"markdownlint-cli2": "^0.17.2",
9898
"playwright": "^1.50.1",
99-
"prettier": "^3.4.2",
99+
"prettier": "^3.5.2",
100100
"sinon": "^19.0.2",
101101
"stylelint": "^16.14.1",
102102
"stylelint-config-standard": "^37.0.0",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
let config = {
2+
address: "0.0.0.0",
3+
ipWhitelist: [],
4+
timeFormat: 12,
5+
6+
modules: [
7+
{
8+
module: "compliments",
9+
position: "middle_center",
10+
config: {
11+
compliments: {
12+
evening: ["Evening here"]
13+
}
14+
}
15+
}
16+
]
17+
};
18+
19+
/*************** DO NOT EDIT THE LINE BELOW ***************/
20+
if (typeof module !== "undefined") {
21+
module.exports = config;
22+
}

tests/electron/helpers/global-setup.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ exports.stopApplication = async () => {
4949
process.env.MOCK_DATE = undefined;
5050
};
5151

52-
exports.getElement = async (selector) => {
52+
exports.getElement = async (selector, state = "visible") => {
5353
expect(global.page).not.toBeNull();
54-
let elem = global.page.locator(selector);
55-
await elem.waitFor();
54+
const elem = global.page.locator(selector);
55+
await elem.waitFor({ state: state });
5656
expect(elem).not.toBeNull();
5757
return elem;
5858
};

tests/electron/modules/compliments_spec.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ describe("Compliments module", () => {
77
* @param {Array} complimentsArray The array of compliments.
88
* @returns {boolean} result
99
*/
10-
const doTest = async (complimentsArray) => {
11-
await helpers.getElement(".compliments");
12-
const elem = await helpers.getElement(".module-content");
10+
const doTest = async (complimentsArray, state = "visible") => {
11+
await helpers.getElement(".compliments", state);
12+
const elem = await helpers.getElement(".module-content", state);
1313
expect(elem).not.toBeNull();
1414
expect(complimentsArray).toContain(await elem.textContent());
1515
return true;
@@ -34,6 +34,11 @@ describe("Compliments module", () => {
3434
await helpers.startApplication("tests/configs/modules/compliments/compliments_parts_day.js", "01 Oct 2022 20:00:00 GMT");
3535
await expect(doTest(["Hello There", "Good Evening", "Evening test"])).resolves.toBe(true);
3636
});
37+
38+
it("doesnt show evening compliments during the day when the other parts of day are not set", async () => {
39+
await helpers.startApplication("tests/configs/modules/compliments/compliments_evening.js", "01 Oct 2022 08:00:00 GMT");
40+
await expect(doTest([""], "attached")).resolves.toBe(true);
41+
});
3742
});
3843

3944
describe("Feature date in compliments module", () => {

0 commit comments

Comments
 (0)