From 5f1421f4bda18e7febd2a6da5b3aea589ff38919 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 17 Mar 2026 14:18:13 +0100 Subject: [PATCH] fix(domain): improve Weekday tests and document all() ordering --- .../domain/src/value_objects/scheduling.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/k-tv-backend/domain/src/value_objects/scheduling.rs b/k-tv-backend/domain/src/value_objects/scheduling.rs index a70fdca..8f02895 100644 --- a/k-tv-backend/domain/src/value_objects/scheduling.rs +++ b/k-tv-backend/domain/src/value_objects/scheduling.rs @@ -168,6 +168,8 @@ impl From for Weekday { impl Weekday { pub fn all() -> [Weekday; 7] { + // ISO week order: Monday = index 0, Sunday = index 6. + // The schedule engine depends on this order when iterating days. [ Weekday::Monday, Weekday::Tuesday, Weekday::Wednesday, Weekday::Thursday, Weekday::Friday, Weekday::Saturday, Weekday::Sunday, @@ -180,13 +182,20 @@ mod weekday_tests { use super::*; #[test] - fn from_chrono_weekday_roundtrip() { + fn from_chrono_weekday_all_variants() { assert_eq!(Weekday::from(chrono::Weekday::Mon), Weekday::Monday); + assert_eq!(Weekday::from(chrono::Weekday::Tue), Weekday::Tuesday); + assert_eq!(Weekday::from(chrono::Weekday::Wed), Weekday::Wednesday); + assert_eq!(Weekday::from(chrono::Weekday::Thu), Weekday::Thursday); + assert_eq!(Weekday::from(chrono::Weekday::Fri), Weekday::Friday); + assert_eq!(Weekday::from(chrono::Weekday::Sat), Weekday::Saturday); assert_eq!(Weekday::from(chrono::Weekday::Sun), Weekday::Sunday); } #[test] - fn all_has_seven_days() { - assert_eq!(Weekday::all().len(), 7); + fn all_returns_monday_first_sunday_last() { + let days = Weekday::all(); + assert_eq!(days[0], Weekday::Monday); + assert_eq!(days[6], Weekday::Sunday); } }