♻️ refactor(eol_rule): simplify eol_rule tests
- introduce a builder function to reduce duplication in test setup - remove unnecessary rule id assignment in tests, using default value
This commit is contained in:
committed by
Jeremiah Russell
parent
6eb86c5d36
commit
88e1da65c0
@@ -190,13 +190,19 @@ impl EolRule {
|
|||||||
mod test {
|
mod test {
|
||||||
use chrono::{Local, TimeZone};
|
use chrono::{Local, TimeZone};
|
||||||
|
|
||||||
use crate::{Retention, config::eol_rule::EolRule};
|
use crate::{MessageAge, Retention, config::eol_rule::EolRule};
|
||||||
|
|
||||||
|
fn build_test_rule(age: MessageAge) -> EolRule {
|
||||||
|
let retention = Retention::new(age, true);
|
||||||
|
let mut rule = EolRule::new(1);
|
||||||
|
rule.set_retention(retention);
|
||||||
|
rule
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_display_for_eol_rule_5_years() {
|
fn test_display_for_eol_rule_5_years() {
|
||||||
let retention = Retention::new(crate::MessageAge::Years(5), true);
|
let rule = build_test_rule(crate::MessageAge::Years(5));
|
||||||
let mut rule = EolRule::new(1);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"Rule #1 is active on `retention/5-years` to move the message to trash if it is more than 5 years old."
|
"Rule #1 is active on `retention/5-years` to move the message to trash if it is more than 5 years old."
|
||||||
.to_string(),
|
.to_string(),
|
||||||
@@ -206,11 +212,10 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_display_for_eol_rule_1_month() {
|
fn test_display_for_eol_rule_1_month() {
|
||||||
let retention = Retention::new(crate::MessageAge::Months(1), true);
|
let rule = build_test_rule(crate::MessageAge::Months(1));
|
||||||
let mut rule = EolRule::new(2);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"Rule #2 is active on `retention/1-months` to move the message to trash if it is more than 1 month old."
|
"Rule #1 is active on `retention/1-months` to move the message to trash if it is more than 1 month old."
|
||||||
.to_string(),
|
.to_string(),
|
||||||
rule.to_string()
|
rule.to_string()
|
||||||
);
|
);
|
||||||
@@ -218,11 +223,10 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_display_for_eol_rule_13_weeks() {
|
fn test_display_for_eol_rule_13_weeks() {
|
||||||
let retention = Retention::new(crate::MessageAge::Weeks(13), true);
|
let rule = build_test_rule(crate::MessageAge::Weeks(13));
|
||||||
let mut rule = EolRule::new(3);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"Rule #3 is active on `retention/13-weeks` to move the message to trash if it is more than 13 weeks old."
|
"Rule #1 is active on `retention/13-weeks` to move the message to trash if it is more than 13 weeks old."
|
||||||
.to_string(),
|
.to_string(),
|
||||||
rule.to_string()
|
rule.to_string()
|
||||||
);
|
);
|
||||||
@@ -230,11 +234,10 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_display_for_eol_rule_365_days() {
|
fn test_display_for_eol_rule_365_days() {
|
||||||
let retention = Retention::new(crate::MessageAge::Days(365), true);
|
let rule = build_test_rule(crate::MessageAge::Days(365));
|
||||||
let mut rule = EolRule::new(4);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"Rule #4 is active on `retention/365-days` to move the message to trash if it is more than 365 days old."
|
"Rule #1 is active on `retention/365-days` to move the message to trash if it is more than 365 days old."
|
||||||
.to_string(),
|
.to_string(),
|
||||||
rule.to_string()
|
rule.to_string()
|
||||||
);
|
);
|
||||||
@@ -242,9 +245,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_eol_query_for_eol_rule_5_years() {
|
fn test_eol_query_for_eol_rule_5_years() {
|
||||||
let retention = Retention::new(crate::MessageAge::Years(5), true);
|
let rule = build_test_rule(crate::MessageAge::Years(5));
|
||||||
let mut rule = EolRule::new(1);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
|
|
||||||
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
||||||
let query = rule.calculate_for_date(test_today).unwrap();
|
let query = rule.calculate_for_date(test_today).unwrap();
|
||||||
@@ -254,9 +255,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_eol_query_for_eol_rule_1_month() {
|
fn test_eol_query_for_eol_rule_1_month() {
|
||||||
let retention = Retention::new(crate::MessageAge::Months(1), true);
|
let rule = build_test_rule(crate::MessageAge::Months(1));
|
||||||
let mut rule = EolRule::new(2);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
|
|
||||||
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
||||||
let query = rule.calculate_for_date(test_today).unwrap();
|
let query = rule.calculate_for_date(test_today).unwrap();
|
||||||
@@ -266,9 +265,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_eol_query_for_eol_rule_13_weeks() {
|
fn test_eol_query_for_eol_rule_13_weeks() {
|
||||||
let retention = Retention::new(crate::MessageAge::Weeks(13), true);
|
let rule = build_test_rule(crate::MessageAge::Weeks(13));
|
||||||
let mut rule = EolRule::new(3);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
|
|
||||||
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
||||||
let query = rule.calculate_for_date(test_today).unwrap();
|
let query = rule.calculate_for_date(test_today).unwrap();
|
||||||
@@ -278,9 +275,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_eol_query_for_eol_rule_365_days() {
|
fn test_eol_query_for_eol_rule_365_days() {
|
||||||
let retention = Retention::new(crate::MessageAge::Days(365), true);
|
let rule = build_test_rule(crate::MessageAge::Days(365));
|
||||||
let mut rule = EolRule::new(4);
|
|
||||||
rule.set_retention(retention);
|
|
||||||
|
|
||||||
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
let test_today = Local.with_ymd_and_hms(2025, 9, 15, 0, 0, 0).unwrap();
|
||||||
let query = rule.calculate_for_date(test_today).unwrap();
|
let query = rule.calculate_for_date(test_today).unwrap();
|
||||||
|
|||||||
Reference in New Issue
Block a user