Skip to content

Commit 76566bf

Browse files
committed
tests: add tests for introspection::format_duration
1 parent c1f2619 commit 76566bf

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

src/plugins/introspection.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,31 @@ impl Plugin for IntrospectionPlugin {
154154
Err(format_err!("introspection plugin lagged"))
155155
}
156156
}
157+
158+
#[cfg(test)]
159+
mod tests {
160+
use super::*;
161+
162+
#[test]
163+
fn test_format_duration() -> Result<()> {
164+
// Just minutes
165+
assert_eq!(format_duration(&Duration::minutes(5))?, "00:05");
166+
assert_eq!(format_duration(&Duration::minutes(45))?, "00:45");
167+
168+
// Hours and minutes
169+
assert_eq!(format_duration(&Duration::hours(1))?, "01:00");
170+
assert_eq!(format_duration(&Duration::new(5400, 0))?, "01:30"); // 1.5 hours
171+
assert_eq!(format_duration(&(Duration::hours(23) + Duration::minutes(59)))?, "23:59");
172+
173+
// Days, hours, and minutes
174+
assert_eq!(format_duration(&Duration::days(1))?, "1 days 00:00");
175+
assert_eq!(format_duration(&(Duration::days(1) + Duration::hours(2) + Duration::minutes(30)))?, "1 days 02:30");
176+
assert_eq!(format_duration(&Duration::days(7))?, "7 days 00:00");
177+
assert_eq!(format_duration(&(Duration::days(10) + Duration::hours(5) + Duration::minutes(15)))?, "10 days 05:15");
178+
179+
// Edge case: zero duration
180+
assert_eq!(format_duration(&Duration::ZERO)?, "00:00");
181+
182+
Ok(())
183+
}
184+
}

0 commit comments

Comments
 (0)