use std::fs;
use syncbox::sync::sync_directories;
use syncbox::sync::{ SyncParameters};
use tempfile::TempDir;
#[tokio::test]
async fn test_sync_success() {
let temp_dir = TempDir::new().unwrap();
let source = temp_dir.path().join("source");
let target = temp_dir.path().join("target");
fs::create_dir(&source).unwrap();
fs::create_dir(&target).unwrap();
let source_file = source.join("hello.txt");
let content = "Hello, SyncBox!";
fs::write(&source_file, content).unwrap();
let params = SyncParameters {
source,
target: target.clone(),
dry_run: false,
checksum: false,
excludes: vec![],
delete_extra: false,
delete_excludes: vec![],
detail: false,
};
let result = sync_directories(¶ms).await;
assert!(result.is_ok(), "Sync failed: {:?}", result);
let target_file = target.join("hello.txt");
assert!(target_file.exists(), "Target file does not exist");
let target_content = fs::read_to_string(&target_file).unwrap();
assert_eq!(target_content, content, "File content mismatch");
}