@@ -81,6 +81,34 @@ END:VCALENDAR`;
8181 expect ( withOngoing [ 0 ] . summary ) . toBe ( 'Multi-day Event' ) ;
8282 } ) ;
8383
84+ it ( 'should show multi-day events on all spanned days only when showOngoing is enabled' , ( ) => {
85+ const events = [ {
86+ summary : 'Spanning Event' ,
87+ start : new Date ( '2025-10-09T09:00:00Z' ) ,
88+ end : new Date ( '2025-10-11T17:00:00Z' ) ,
89+ uid : 'spanning-event-uid'
90+ } ] ;
91+
92+ const dates = [ '2025-10-09' , '2025-10-10' , '2025-10-11' ] ;
93+
94+ // With showOngoing OFF: only the start date should include the event
95+ const eventsOnDatesWithOngoingOff = dates . map ( date => filterMatchingEvents ( events , [ date ] , false ) ) ;
96+ expect ( eventsOnDatesWithOngoingOff [ 0 ] ) . toHaveLength ( 1 ) ; // 2025-10-09 (start)
97+ expect ( eventsOnDatesWithOngoingOff [ 1 ] ) . toHaveLength ( 0 ) ; // 2025-10-10 (middle)
98+ expect ( eventsOnDatesWithOngoingOff [ 2 ] ) . toHaveLength ( 0 ) ; // 2025-10-11 (end)
99+
100+ // With showOngoing ON: all dates from start to end should include the event
101+ const eventsOnDatesWithOngoingOn = dates . map ( date => filterMatchingEvents ( events , [ date ] , true ) ) ;
102+ expect ( eventsOnDatesWithOngoingOn [ 0 ] ) . toHaveLength ( 1 ) ; // 2025-10-09 (start)
103+ expect ( eventsOnDatesWithOngoingOn [ 1 ] ) . toHaveLength ( 1 ) ; // 2025-10-10 (middle)
104+ expect ( eventsOnDatesWithOngoingOn [ 2 ] ) . toHaveLength ( 1 ) ; // 2025-10-11 (end)
105+
106+ // Sanity: verify correct event is returned
107+ eventsOnDatesWithOngoingOn . forEach ( ( res ) => {
108+ expect ( res [ 0 ] . summary ) . toBe ( 'Spanning Event' ) ;
109+ } ) ;
110+ } ) ;
111+
84112 it ( 'should skip cancelled events' , ( ) => {
85113 const events = [ {
86114 summary : 'Cancelled Event' ,
@@ -227,7 +255,7 @@ END:VCALENDAR`;
227255 ] ;
228256
229257 const results = testDates . map ( date => filterMatchingEvents ( events , [ date ] , false ) ) ;
230-
258+
231259 expect ( results [ 0 ] ) . toHaveLength ( 1 ) ; // Original
232260 expect ( results [ 1 ] ) . toHaveLength ( 1 ) ; // First recurrence
233261 expect ( results [ 2 ] ) . toHaveLength ( 0 ) ; // Excluded
0 commit comments