🐛 fix a bug where we didn't handle recurrence exceptions, causing duplicate events whenever a recurring event was moved

This commit is contained in:
_ 2025-08-12 23:25:34 +00:00
parent 3044deb89f
commit 5310f19383
2 changed files with 75 additions and 24 deletions

View file

@ -147,28 +147,34 @@ END:VCALENDAR
tz: chrono_tz::America::Chicago,
};
let instances = ical.event_instances(&params)?;
assert_eq!(
[
instances[0].dtstart,
instances[1].dtstart,
instances[2].dtstart,
],
[
DatePerhapsTime {
dt: chicago_time(2025, 7, 8, 18, 0, 0),
all_day: false,
},
DatePerhapsTime {
dt: chicago_time(2025, 9, 9, 18, 0, 0),
all_day: false,
},
DatePerhapsTime {
dt: chicago_time(2025, 8, 14, 18, 0, 0),
all_day: false,
},
]
);
for instance in &instances {
assert_eq!(instance.ev.get_summary(), Some("coil perm brush zippy"));
}
assert_eq!(instances.len(), 3);
let expected_time = DatePerhapsTime {
dt: chicago_time(2025, 7, 8, 18, 0, 0),
all_day: false,
};
assert_eq!(instances[0].dtstart, expected_time);
assert_eq!(instances[0].ev.get_summary(), Some("coil perm brush zippy"));
let expected_time = DatePerhapsTime {
dt: chicago_time(2025, 8, 14, 18, 0, 0),
all_day: false,
};
assert_eq!(instances[1].dtstart, expected_time);
assert_eq!(instances[1].ev.get_summary(), Some("coil perm brush zippy"));
let expected_time = DatePerhapsTime {
dt: chicago_time(2025, 9, 9, 18, 0, 0),
all_day: false,
};
assert_eq!(instances[2].dtstart, expected_time);
assert_eq!(instances[2].ev.get_summary(), Some("coil perm brush zippy"));
Ok(())
}