diff --git a/tests/git_filter_test.rs b/tests/git_filter_test.rs new file mode 100644 index 0000000..99a5791 --- /dev/null +++ b/tests/git_filter_test.rs @@ -0,0 +1,40 @@ +#[cfg(test)] +mod tests { + use crate::git::filter::{parse_date, TimeFilter, TimePeriod}; + use crate::git::Repository; + + #[test] + fn test_time_period_parsing() { + let period: TimePeriod = "7d".parse().unwrap(); + let (start, end) = period.to_range(); + assert!(end > start); + } + + #[test] + fn test_time_period_weeks() { + let period: TimePeriod = "2w".parse().unwrap(); + let (start, end) = period.to_range(); + let days = (end - start).num_days(); + assert!(days >= 14); + } + + #[test] + fn test_time_period_months() { + let period: TimePeriod = "1m".parse().unwrap(); + let (start, end) = period.to_range(); + let days = (end - start).num_days(); + assert!(days >= 28 && days <= 31); + } + + #[test] + fn test_parse_date_relative() { + let date = parse_date("7d").unwrap(); + assert!(date.year() > 2020); + } + + #[test] + fn test_parse_date_iso() { + let date = parse_date("2024-01-15").unwrap(); + assert!(date.year() == 2024); + } +}