From 4f8764733959bd0bb2b3080173b766721e9353f1 Mon Sep 17 00:00:00 2001 From: Jeremiah Russell Date: Wed, 29 Oct 2025 09:56:16 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(rules):=20correct=20grammar?= =?UTF-8?q?=20and=20improve=20date=20calculation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - correct a grammatical error in a comment - add logging for debugging date calculations - add a new test case for 1032 days to ensure correct calculation --- src/rules/eol_rule.rs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/rules/eol_rule.rs b/src/rules/eol_rule.rs index a5f1a49..2e59d06 100644 --- a/src/rules/eol_rule.rs +++ b/src/rules/eol_rule.rs @@ -345,7 +345,7 @@ impl EolRule { /// Generates a Gmail search query for messages that match this rule's age criteria. /// - /// This method calculates the cutoff date based on the rule's retention period + /// This method calculates the cut-off date based on the rule's retention period /// and returns a Gmail search query string that can be used to find messages /// older than the specified threshold. /// @@ -371,11 +371,15 @@ impl EolRule { fn calculate_for_date(&self, today: DateTime) -> Option { let message_age = MessageAge::parse(&self.retention)?; + log::trace!("testing for {message_age}"); let deadline = match message_age { MessageAge::Days(c) => { let delta = TimeDelta::days(c); - today.checked_sub_signed(delta)? + log::trace!("delta for change: {delta}"); + let deadline = today.checked_sub_signed(delta)?; + log::trace!("calculated deadline: {deadline}"); + deadline } MessageAge::Weeks(c) => { let delta = TimeDelta::weeks(c); @@ -532,4 +536,19 @@ mod test { assert_eq!("before: 2024-09-15", query); } + + #[test] + fn test_eol_query_for_eol_rule_1032_days() { + let rule = build_test_rule(crate::MessageAge::Days(1032)); + + let test_today = Local + .with_ymd_and_hms(2025, 9, 15, 0, 0, 0) + .single() + .unwrap(); + let query = rule + .calculate_for_date(test_today) + .expect("Failed to calculate query"); + + assert_eq!("before: 2024-09-15", query); + } }