#![cfg(feature = "test-sync")] use dir_odt_to_pdf::error::{ProcessError, Result}; use dir_odt_to_pdf::logging::{LogConfig, LogWriter}; use log::LevelFilter; use std::fs; use std::io; use tempfile::NamedTempFile; #[test] fn test_log_writer_file_output() -> io::Result<()> { let temp_file = NamedTempFile::new()?; let mut writer = LogWriter::new(Some(temp_file.reopen()?)); writer.write_all(b"test message\n")?; writer.flush()?; let content = fs::read_to_string(temp_file.path())?; assert_eq!(content, "test message\n"); Ok(()) } #[test] fn test_log_writer_console_output() { let mut writer = LogWriter::new(None); assert!(writer.write_all(b"test message\n").is_ok()); assert!(writer.flush().is_ok()); } #[test] fn test_log_config_default() { let config = LogConfig::default(); assert_eq!(config.log_level, LevelFilter::Info); assert_eq!(config.log_file, None); assert!(!config.append_log); } #[test] fn test_log_writer() -> Result<()> { let mut writer = LogWriter::new(None); writer .write_all(b"test message\n") .map_err(ProcessError::Io)?; writer.flush().map_err(ProcessError::Io)?; Ok(()) } #[test] fn test_log_writer_methods() -> Result<()> { let mut writer = LogWriter::new(None); assert!(writer.write_all(b"test message\n").is_ok()); assert!(writer.flush().is_ok()); Ok(()) }