mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-29 12:39:45 +00:00
here is an updated test version of the fixes for all kinds of calendar date problems. NOTE: the changed branch name NOTE: this used the node-cal@0.19.0 library UNCHANGED best to make a new folder and git clone there git clone https://github.com/sdetweil/MagicMirror cd MagicMirror git checkout fixcaldates2 // <------ note this is a changed branch name npm run install-mm copy your config.js and custom.css from the prior folder and the non-default modules you have installed… this ONLY changes the default calendar but DOES ship an updated node-ical library too if you need to fall back, just rename the folders around again so that your original is called MagicMirror all the testcases for node-ical and MagicMirror execute successfully. the ‘BIG’ change here is to get the local NON-TZ dates for the rrule.between() all the checking and conversion code is commented out or not used the node-ical fixes are for excluded dates (exdate) values being adjusted for DST/STD time… waiting to submit that PR one fix in calendar.js for checking if a past date was too far back, but it never checked to see IF the event date was in the past… (before today) so it chopped off too many and one change in calendarfetcher.js to put out a better diagnostic message of the parsed data… (exdate was excluded cause JSON stringify couldn’t convert the complex structure) I added the tests you all have documented please re-pull and checkout the new branch (I deleted the old branch) and npm run install-mm again --------- Co-authored-by: Veeck <github@veeck.de>
126 lines
4.4 KiB
JavaScript
126 lines
4.4 KiB
JavaScript
const helpers = require("../helpers/global-setup");
|
|
|
|
describe("Compliments module", () => {
|
|
|
|
/**
|
|
* move similar tests in function doTest
|
|
* @param {Array} complimentsArray The array of compliments.
|
|
* @returns {boolean} result
|
|
*/
|
|
const doTest = async (complimentsArray) => {
|
|
let elem = await helpers.waitForElement(".compliments");
|
|
expect(elem).not.toBeNull();
|
|
elem = await helpers.waitForElement(".module-content");
|
|
expect(elem).not.toBeNull();
|
|
expect(complimentsArray).toContain(elem.textContent);
|
|
return true;
|
|
};
|
|
|
|
afterAll(async () => {
|
|
await helpers.stopApplication();
|
|
});
|
|
|
|
describe("Feature anytime in compliments module", () => {
|
|
describe("Set anytime and empty compliments for morning, evening and afternoon", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_anytime.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("shows anytime because if configure empty parts of day compliments and set anytime compliments", async () => {
|
|
await expect(doTest(["Anytime here"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("Only anytime present in configuration compliments", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_only_anytime.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("shows anytime compliments", async () => {
|
|
await expect(doTest(["Anytime here"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("remoteFile option", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_remote.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("should show compliments from a remote file", async () => {
|
|
await expect(doTest(["Remote compliment file works!"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("Feature specialDayUnique in compliments module", () => {
|
|
describe("specialDayUnique is false", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_specialDayUnique_false.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("compliments array can contain all values", async () => {
|
|
await expect(doTest(["Special day message", "Typical message 1", "Typical message 2", "Typical message 3"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("specialDayUnique is true", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_specialDayUnique_true.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("compliments array contains only special value", async () => {
|
|
await expect(doTest(["Special day message"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("cron type key", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_e2e_cron_entry.js");
|
|
await helpers.getDocument();
|
|
});
|
|
|
|
it("compliments array contains only special value", async () => {
|
|
await expect(doTest(["anytime cron"])).resolves.toBe(true);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("Feature remote compliments file", () => {
|
|
describe("get list from remote file", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_file.js");
|
|
await helpers.getDocument();
|
|
});
|
|
it("shows 'Remote compliment file works!' as only anytime list set", async () => {
|
|
//await helpers.startApplication("tests/configs/modules/compliments/compliments_file.js", "01 Jan 2022 10:00:00 GMT");
|
|
await expect(doTest(["Remote compliment file works!"])).resolves.toBe(true);
|
|
});
|
|
// afterAll(async () =>{
|
|
// await helpers.stopApplication()
|
|
// });
|
|
});
|
|
|
|
describe("get list from remote file w update", () => {
|
|
beforeAll(async () => {
|
|
await helpers.startApplication("tests/configs/modules/compliments/compliments_file_change.js");
|
|
await helpers.getDocument();
|
|
});
|
|
it("shows 'test in morning' as test time set to 10am", async () => {
|
|
//await helpers.startApplication("tests/configs/modules/compliments/compliments_file_change.js", "01 Jan 2022 10:00:00 GMT");
|
|
await expect(doTest(["Remote compliment file works!"])).resolves.toBe(true);
|
|
await new Promise((r) => setTimeout(r, 10000));
|
|
await expect(doTest(["test in morning"])).resolves.toBe(true);
|
|
});
|
|
// afterAll(async () =>{
|
|
// await helpers.stopApplication()
|
|
// });
|
|
});
|
|
});
|
|
|
|
});
|