fix(02): correct DURATION-only event end in expand.ts (BUG 1)

- Replace dtend ?? dtstart with event.endDate which handles DURATION-only VEVENTs
- Add positive-duration guard (PT30M / P1D) to both non-recurring and recurring branches
- Add single-duration.ics fixture and regression test asserting end > start for DURATION-only events
This commit is contained in:
Lucas Berger
2026-06-05 14:33:00 -04:00
parent bef4a83fe0
commit ee2281fe81
3 changed files with 89 additions and 3 deletions
+28
View File
@@ -0,0 +1,28 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//FamilySync//Test//EN
BEGIN:VTIMEZONE
TZID:America/Toronto
BEGIN:STANDARD
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:single-duration-only@familysync.test
DTSTART;TZID=America/Toronto:20260618T080000
DURATION:PT1H
SUMMARY:Morning Standup
DESCRIPTION:Non-recurring timed event with DURATION only, no DTEND
END:VEVENT
END:VCALENDAR