diff --git a/icalendar_test.ts b/icalendar_test.ts index cec9c10..c460ed6 100644 --- a/icalendar_test.ts +++ b/icalendar_test.ts @@ -243,3 +243,26 @@ Deno.test("expandRecurrences - object rrule with byday", () => { assertEquals(results[0].recurrent, true); }); + +Deno.test("expandRecurrences - composite object rrule", () => { + const now = new Date(); + const start = new Date(now.getTime() - 10 * 86400000); + const startStr = localDateString(start); + const untilDate = new Date(now.getTime() + 10 * 86400000); + + const icsEvent = { + summary: "Composite RRULE Event", + start: startStr, + rrule: { + frequency: "WEEKLY", + until: { date: untilDate }, + byday: [{ day: "MO" }, { day: "WE" }, { day: "FR" }] + } + }; + + const results = expandRecurrences(icsEvent, 30); + // Should successfully expand multiple days per week until the date + assert(results.length > 1); + assertEquals(results[0].recurrent, true); +}); +