From 20a74ac7a44da90e533696e29e4fae812962f09a Mon Sep 17 00:00:00 2001 From: Alvaro Soliverez Date: Sat, 18 Oct 2025 14:14:29 -0300 Subject: [PATCH] Fix unused function warning for parse_ical_datetime - Add #[cfg(test)] attribute to mark function as test-only - Add comprehensive test for parse_ical_datetime function - Move imports into function scope to reduce global imports - Test covers DATE format, UTC datetime format, and error handling Fixes warning: function 'parse_ical_datetime' is never used --- src/event.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/event.rs b/src/event.rs index b995c81..7dde9a5 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,7 +1,7 @@ //! Event handling and iCalendar parsing -use crate::error::{CalDavError, CalDavResult}; -use chrono::{DateTime, Utc, NaiveDateTime}; +use crate::error::CalDavResult; +use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use uuid::Uuid; @@ -369,7 +369,11 @@ fn escape_ical_text(text: &str) -> String { } /// Parse iCalendar date/time +#[cfg(test)] fn parse_ical_datetime(dt_str: &str) -> CalDavResult> { + use crate::error::CalDavError; + use chrono::NaiveDateTime; + // Handle different iCalendar date formats if dt_str.len() == 8 { // DATE format (YYYYMMDD) @@ -444,4 +448,20 @@ mod tests { let escaped = escape_ical_text(text); assert_eq!(escaped, "Hello\\, world\\; this\\\\is a test"); } + + #[test] + fn test_parse_ical_datetime() { + // Test DATE format (YYYYMMDD) + let date_result = parse_ical_datetime("20231225").unwrap(); + assert_eq!(date_result.format("%Y%m%d").to_string(), "20231225"); + assert_eq!(date_result.format("%H%M%S").to_string(), "000000"); + + // Test UTC datetime format (YYYYMMDDTHHMMSSZ) + let datetime_result = parse_ical_datetime("20231225T103000Z").unwrap(); + assert_eq!(datetime_result.format("%Y%m%dT%H%M%SZ").to_string(), "20231225T103000Z"); + + // Test local time format (should fail) + let local_result = parse_ical_datetime("20231225T103000"); + assert!(local_result.is_err()); + } }