@@ -36,10 +36,9 @@ test("parses a non-recurring event with attendee extraction and obfuscation", ()
3636 new Date ( "2026-03-02T00:00:00Z" )
3737 ) ;
3838
39- assert . equal ( result . events . length , 1 ) ;
40- assert . equal ( result . occurrences . length , 0 ) ;
39+ assert . equal ( result . length , 1 ) ;
4140
42- const [ event ] = result . events ;
41+ const [ event ] = result ;
4342 assert . equal ( event . summary , "Team Sync" ) ;
4443 assert . equal ( event . location , "Office" ) ;
4544 assert . equal ( event . description , "Weekly team sync" ) ;
@@ -74,8 +73,7 @@ test("ignores non-recurring events outside requested window", () => {
7473 new Date ( "2026-04-02T00:00:00Z" )
7574 ) ;
7675
77- assert . equal ( result . events . length , 0 ) ;
78- assert . equal ( result . occurrences . length , 0 ) ;
76+ assert . equal ( result . length , 0 ) ;
7977} ) ;
8078
8179test ( "expands recurring events and applies EXDATE exclusions" , ( ) => {
@@ -99,18 +97,17 @@ test("expands recurring events and applies EXDATE exclusions", () => {
9997 new Date ( "2026-02-07T00:00:00Z" )
10098 ) ;
10199
102- assert . equal ( result . events . length , 0 ) ;
103- assert . equal ( result . occurrences . length , 4 ) ;
100+ assert . equal ( result . length , 4 ) ;
104101
105- const starts = result . occurrences . map ( ( occurrence ) => occurrence . start . toISOString ( ) ) ;
102+ const starts = result . map ( ( occurrence ) => occurrence . start . toISOString ( ) ) ;
106103 assert . deepEqual ( starts , [
107104 "2026-02-01T10:00:00.000Z" ,
108105 "2026-02-02T10:00:00.000Z" ,
109106 "2026-02-04T10:00:00.000Z" ,
110107 "2026-02-05T10:00:00.000Z"
111108 ] ) ;
112109
113- for ( const occurrence of result . occurrences ) {
110+ for ( const occurrence of result ) {
114111 assert . equal ( occurrence . isRecurring , true ) ;
115112 }
116113} ) ;
@@ -136,7 +133,7 @@ test("respects maxIterations for recurring expansion", () => {
136133 2
137134 ) ;
138135
139- assert . equal ( result . occurrences . length , 2 ) ;
136+ assert . equal ( result . length , 2 ) ;
140137} ) ;
141138
142139test ( "uses default attendee metadata when optional params are missing" , ( ) => {
@@ -159,8 +156,8 @@ test("uses default attendee metadata when optional params are missing", () => {
159156 new Date ( "2026-06-02T00:00:00Z" )
160157 ) ;
161158
162- assert . equal ( result . events . length , 1 ) ;
163- assert . deepEqual ( result . events [ 0 ] . attendees [ 0 ] , {
159+ assert . equal ( result . length , 1 ) ;
160+ assert . deepEqual ( result [ 0 ] . attendees [ 0 ] , {
164161 name : "someone@***.com" ,
165162 email : "someone@***.com" ,
166163 status : "NEEDS-ACTION" ,
@@ -187,10 +184,11 @@ test("parses all-day events with correct duration and date span", () => {
187184 new Date ( "2026-03-31T00:00:00Z" )
188185 ) ;
189186
190- assert . equal ( result . events . length , 1 ) ;
187+ assert . equal ( result . length , 1 ) ;
191188
192- const event = result . events [ 0 ] ;
189+ const event = result [ 0 ] ;
193190 assert . equal ( event . summary , "Holiday" ) ;
191+ assert . equal ( event . isFullDay , true , "all-day event should have isFullDay=true" ) ;
194192 assert . equal ( event . duration , 86400 , "all-day event should be exactly 86400s" ) ;
195193
196194 const startMs = event . start . getTime ( ) ;
@@ -217,9 +215,10 @@ test("provides correct endDate and duration for timed events", () => {
217215 new Date ( "2026-03-02T00:00:00Z" )
218216 ) ;
219217
220- assert . equal ( result . events . length , 1 ) ;
218+ assert . equal ( result . length , 1 ) ;
221219
222- const event = result . events [ 0 ] ;
220+ const event = result [ 0 ] ;
221+ assert . equal ( event . isFullDay , false , "timed event should have isFullDay=false" ) ;
223222 assert . equal (
224223 event . end . toISOString ( ) ,
225224 "2026-03-01T11:30:00.000Z"
@@ -247,9 +246,10 @@ test("expands recurring all-day events with correct duration", () => {
247246 new Date ( "2026-03-31T00:00:00Z" )
248247 ) ;
249248
250- assert . equal ( result . occurrences . length , 3 ) ;
249+ assert . equal ( result . length , 3 ) ;
251250
252- for ( const occurrence of result . occurrences ) {
251+ for ( const occurrence of result ) {
252+ assert . equal ( occurrence . isFullDay , true , "recurring all-day should have isFullDay=true" ) ;
253253 assert . equal ( occurrence . duration , 86400 ) ;
254254
255255 const startMs = occurrence . start . getTime ( ) ;
@@ -281,8 +281,8 @@ test("returns plain strings for properties that carry ICAL parameters (e.g. SUMM
281281 new Date ( "2026-03-02T00:00:00Z" )
282282 ) ;
283283
284- assert . equal ( result . events . length , 1 ) ;
285- const ev = result . events [ 0 ] ;
284+ assert . equal ( result . length , 1 ) ;
285+ const ev = result [ 0 ] ;
286286 assert . equal ( typeof ev . summary , "string" , "summary must be a plain string" ) ;
287287 assert . equal ( typeof ev . location , "string" , "location must be a plain string" ) ;
288288 assert . equal ( typeof ev . description , "string" , "description must be a plain string" ) ;
@@ -311,8 +311,8 @@ test("exposes status=CANCELLED on a non-recurring event", () => {
311311 new Date ( "2026-03-02T00:00:00Z" )
312312 ) ;
313313
314- assert . equal ( result . events . length , 1 ) ;
315- const ev = result . events [ 0 ] ;
314+ assert . equal ( result . length , 1 ) ;
315+ const ev = result [ 0 ] ;
316316 assert . equal ( ev . status , "CANCELLED" ) ;
317317} ) ;
318318
@@ -336,8 +336,8 @@ test("exposes ms_busystatus for Microsoft X-CDO property", () => {
336336 new Date ( "2026-03-02T00:00:00Z" )
337337 ) ;
338338
339- assert . equal ( result . events . length , 1 ) ;
340- assert . equal ( result . events [ 0 ] . ms_busystatus , "OOF" ) ;
339+ assert . equal ( result . length , 1 ) ;
340+ assert . equal ( result [ 0 ] . ms_busystatus , "OOF" ) ;
341341} ) ;
342342
343343test ( "exposes status on a recurring occurrence (from parent event)" , ( ) => {
@@ -361,8 +361,8 @@ test("exposes status on a recurring occurrence (from parent event)", () => {
361361 new Date ( "2026-03-05T00:00:00Z" )
362362 ) ;
363363
364- assert . equal ( result . occurrences . length , 2 ) ;
365- for ( const occurrence of result . occurrences ) {
364+ assert . equal ( result . length , 2 ) ;
365+ for ( const occurrence of result ) {
366366 assert . equal ( occurrence . status , "CANCELLED" ) ;
367367 }
368368} ) ;
0 commit comments