mirror of
https://github.com/MichMich/MagicMirror.git
synced 2026-07-21 10:16:42 -07:00
chore: update dependencies + adapt calendar tests (#4211)
I updated dependencies (including `node-ical` to 0.27.0), which broke 2 tests. It's not a bug in `node-ical`, our code, or the tests - `node-ical` just switched its CJS build to non-configurable getters, so `vi.spyOn` on the module could no longer redefine them. I adjusted the two affected tests to use real invalid input instead of mocking, keeping the original test intention. No production code changes. Full suite passes again.
This commit is contained in:
committed by
GitHub
parent
f246b0facd
commit
469f3bf0cd
Generated
+219
-613
File diff suppressed because it is too large
Load Diff
+16
-16
@@ -81,27 +81,27 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@fontsource/roboto": "^5.2.10",
|
||||
"@fontsource/roboto-condensed": "^5.2.8",
|
||||
"@fortawesome/fontawesome-free": "^7.3.0",
|
||||
"@fontsource/roboto": "^5.3.0",
|
||||
"@fontsource/roboto-condensed": "^5.3.0",
|
||||
"@fortawesome/fontawesome-free": "^7.3.1",
|
||||
"animate.css": "^4.1.1",
|
||||
"croner": "^10.0.1",
|
||||
"eslint": "^10.6.0",
|
||||
"eslint": "^10.7.0",
|
||||
"express": "^5.2.1",
|
||||
"feedme": "^2.0.2",
|
||||
"globals": "^17.7.0",
|
||||
"helmet": "^8.2.0",
|
||||
"helmet": "^8.3.0",
|
||||
"html-to-text": "^10.0.0",
|
||||
"iconv-lite": "^0.7.3",
|
||||
"ics-filter": "^1.0.3",
|
||||
"ics-filter": "^1.0.4",
|
||||
"ipaddr.js": "^2.4.0",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.6.2",
|
||||
"node-ical": "^0.26.1",
|
||||
"moment-timezone": "^0.6.3",
|
||||
"node-ical": "^0.27.0",
|
||||
"nunjucks": "^3.2.4",
|
||||
"socket.io": "^4.8.3",
|
||||
"suncalc": "^2.0.0",
|
||||
"systeminformation": "^5.31.15",
|
||||
"suncalc": "^2.0.1",
|
||||
"systeminformation": "^5.32.0",
|
||||
"undici": "^8.7.0",
|
||||
"weathericons": "^2.1.0"
|
||||
},
|
||||
@@ -111,25 +111,25 @@
|
||||
"@eslint/markdown": "^8.0.3",
|
||||
"@stylistic/eslint-plugin": "^5.10.0",
|
||||
"@vitest/coverage-v8": "^4.1.10",
|
||||
"@vitest/eslint-plugin": "^1.6.22",
|
||||
"@vitest/eslint-plugin": "^1.6.23",
|
||||
"@vitest/ui": "^4.1.10",
|
||||
"cspell": "^10.0.1",
|
||||
"eslint-plugin-import-x": "^4.17.1",
|
||||
"eslint-plugin-jsdoc": "^63.0.12",
|
||||
"eslint-plugin-package-json": "^1.5.0",
|
||||
"eslint-plugin-jsdoc": "^63.2.0",
|
||||
"eslint-plugin-package-json": "^1.6.0",
|
||||
"eslint-plugin-playwright": "^2.10.5",
|
||||
"express-basic-auth": "^1.2.1",
|
||||
"husky": "^9.1.7",
|
||||
"jsdom": "^29.1.1",
|
||||
"lint-staged": "^17.0.8",
|
||||
"lint-staged": "^17.1.0",
|
||||
"msw": "^2.15.0",
|
||||
"playwright": "^1.61.1",
|
||||
"prettier": "^3.9.4",
|
||||
"prettier": "^3.9.5",
|
||||
"prettier-plugin-jinja-template": "^2.2.0",
|
||||
"vitest": "^4.1.10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"electron": "^43.1.0"
|
||||
"electron": "^43.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.22.2 <23 || >=24"
|
||||
|
||||
@@ -433,13 +433,12 @@ END:VCALENDAR`);
|
||||
const start = moment().add(1, "hours").toDate();
|
||||
const end = moment().add(2, "hours").toDate();
|
||||
|
||||
vi.spyOn(ical, "expandRecurringEvent").mockImplementationOnce(() => {
|
||||
throw new TypeError("invalid rrule");
|
||||
});
|
||||
|
||||
// A malformed rrule (missing .between) makes real node-ical throw inside
|
||||
// expandRecurringEvent; filterEvents should catch it, skip that event, and
|
||||
// still return the unaffected one. No mocking needed.
|
||||
const result = CalendarFetcherUtils.filterEvents(
|
||||
{
|
||||
brokenEvent: { type: "VEVENT", start, end, summary: "Broken" },
|
||||
brokenEvent: { type: "VEVENT", start, end, summary: "Broken", rrule: {} },
|
||||
goodEvent: { type: "VEVENT", start, end, summary: "Good" }
|
||||
},
|
||||
defaultConfig
|
||||
@@ -450,12 +449,10 @@ END:VCALENDAR`);
|
||||
});
|
||||
|
||||
it("should let expandRecurringEvent throw through directly", () => {
|
||||
vi.spyOn(ical, "expandRecurringEvent").mockImplementationOnce(() => {
|
||||
throw new TypeError("invalid rrule");
|
||||
});
|
||||
|
||||
const event = { type: "VEVENT", start: new Date(), end: new Date(), summary: "Broken Event" };
|
||||
expect(() => CalendarFetcherUtils.expandRecurringEvent(event, moment(), moment().add(1, "days"))).toThrow("invalid rrule");
|
||||
// A malformed rrule (missing .between) makes real node-ical throw, proving
|
||||
// expandRecurringEvent propagates errors instead of swallowing them.
|
||||
const event = { type: "VEVENT", start: new Date(), end: new Date(), summary: "Broken Event", rrule: {} };
|
||||
expect(() => CalendarFetcherUtils.expandRecurringEvent(event, moment(), moment().add(1, "days"))).toThrow(TypeError);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user