use std::time::Duration;
use std::{fs, thread};
#[test]
fn test_init_logging() {
use alfrusco::config::TestingProvider;
use tempfile::TempDir;
let temp_dir = TempDir::new().unwrap();
let provider = TestingProvider(temp_dir.path().to_path_buf());
let result = alfrusco::init_logging(&provider);
assert!(result.is_ok());
let log_file = temp_dir.path().join("workflow_cache").join("workflow.log");
log::info!("Test info message");
log::debug!("Test debug message");
log::warn!("Test warning message");
thread::sleep(Duration::from_millis(100));
assert!(log_file.exists());
let log_content = fs::read_to_string(&log_file).unwrap();
assert!(
log_content.contains("Test info message")
|| log_content.contains("Test debug message")
|| log_content.contains("Test warning message")
);
let second_result = alfrusco::init_logging(&provider);
assert!(second_result.is_err());
}