@@ -453,64 +453,37 @@ describe('Agenda item', function()
453453 assert .are .same (' 10:00...... Scheduled:' , agenda_item .label )
454454 end )
455455
456- it (' should properly read date ranges bigger than current day' , function ()
456+ it (' should properly read same day date ranges and time ranges' , function ()
457+ -- Same day date range
457458 local range_start = Date .from_string (' 2021-06-13 Sun 13:30' )
458- local range_end = range_start :add ({ day = 4 , hour = 1 })
459+ local range_end = range_start :add ({ hour = 1 })
459460 local headline = generate (string.format (' Some text <%s>--<%s>' , range_start :to_string (), range_end :to_string ()))
460461 local day = range_start :clone ()
461462 local agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
462463 assert .is .True (agenda_item .is_valid )
463- assert .are .same (' 13:30...... (1/5): ' , agenda_item . label )
464+ assert .are .same (agenda_item . label , ' 13:30-14:30 ' )
464465 agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
465466 assert .is .False (agenda_item .is_valid )
466467
467- day = day :add ({ day = 1 })
468- agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
468+ -- Time range on a single date
469+ local date_with_time_range = Date .from_string (' 2021-06-13 Sun 15:00-16:30' )
470+ headline = generate (string.format (' Some text <%s>' , date_with_time_range :to_string ()))
471+ agenda_item = AgendaItem :new (headline .dates [1 ], headline , date_with_time_range )
469472 assert .is .True (agenda_item .is_valid )
470- assert .are .same (' (2/5):' , agenda_item .label )
471- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
472- assert .is .False (agenda_item .is_valid )
473-
474- day = day :add ({ day = 1 })
475- agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
476- assert .is .True (agenda_item .is_valid )
477- assert .are .same (' (3/5):' , agenda_item .label )
478- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
479- assert .is .False (agenda_item .is_valid )
473+ assert .are .same (agenda_item .label , ' 15:00-16:30 ' )
480474
481- day = day :add ({ day = 1 })
482- agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
475+ -- Time range on a date has precedence over same day date range
476+ date_with_time_range = Date .from_string (' 2021-06-13 Sun 18:00-19:30' )
477+ local date_with_time_range_end = Date .from_string (' 2021-06-13 Sun 20:00' )
478+ headline = generate (string.format (' Some text <%s>--<%s>' , date_with_time_range :to_string (), date_with_time_range_end :to_string ()))
479+ agenda_item = AgendaItem :new (headline .dates [1 ], headline , date_with_time_range )
483480 assert .is .True (agenda_item .is_valid )
484- assert .are .same (' (4/5):' , agenda_item .label )
485- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
486- assert .is .False (agenda_item .is_valid )
487-
488- day = day :add ({ day = 1 })
489- agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
490- assert .is .False (agenda_item .is_valid )
491-
492- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
493- assert .is .True (agenda_item .is_valid )
494- assert .are .same (' 14:30...... (5/5):' , agenda_item .label )
481+ assert .are .same (agenda_item .label , ' 18:00-19:30 ' )
495482 end )
496483
497- it (' should ignore end range if it is set to the same day as start day' , function ()
498484 local range_start = Date .from_string (' 2021-06-13 Sun 13:30' )
499- local range_end = range_start :add ({ hour = 5 })
485+ local range_end = range_start :add ({ day = 4 , hour = 1 })
500486 local headline = generate (string.format (' Some text <%s>--<%s>' , range_start :to_string (), range_end :to_string ()))
501- local day = range_start :clone ()
502- local agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
503- assert .is .True (agenda_item .is_valid )
504- assert .are .same (' 13:30...... ' , agenda_item .label )
505- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
506- assert .is .False (agenda_item .is_valid )
507-
508- day = day :add ({ day = 1 })
509- agenda_item = AgendaItem :new (headline .dates [1 ], headline , day )
510- assert .is .False (agenda_item .is_valid )
511- agenda_item = AgendaItem :new (headline .dates [2 ], headline , day )
512- assert .is .False (agenda_item .is_valid )
513- end )
514487
515488 it (' should not show scheduled DONE item if disabled in config' , function ()
516489 local future_day = Date .now ():add ({ day = 2 })
0 commit comments