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
This commit is contained in:
Alvaro Soliverez 2025-10-18 14:14:29 -03:00
parent e8047fbba2
commit 20a74ac7a4

View file

@ -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<DateTime<Utc>> {
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());
}
}