use super::*;
#[test]
fn test_path_with_spaces() {
let temp = TempDir::new().unwrap();
heddle(&["init"], Some(temp.path())).unwrap();
fs::write(temp.path().join("file with spaces.txt"), "content").unwrap();
heddle(&["capture", "-m", "Spaces"], Some(temp.path())).unwrap();
let result = heddle(&["status"], Some(temp.path()));
assert!(
result.is_ok(),
"spaces in filename should work: {:?}",
result.err()
);
}
#[test]
fn test_nested_directories() {
let temp = TempDir::new().unwrap();
heddle(&["init"], Some(temp.path())).unwrap();
let deep_path = temp.path().join("a/b/c/d/e/f");
fs::create_dir_all(&deep_path).unwrap();
fs::write(deep_path.join("deep.txt"), "deep content").unwrap();
let result = heddle(&["capture", "-m", "Deep"], Some(temp.path()));
assert!(
result.is_ok(),
"deep nesting should work: {:?}",
result.err()
);
let status = status_json(temp.path());
assert!(status.get("changes").is_some(), "status should work");
}
#[test]
fn test_path_case_sensitivity() {
let temp = TempDir::new().unwrap();
heddle(&["init"], Some(temp.path())).unwrap();
fs::write(temp.path().join("File.txt"), "upper").unwrap();
fs::write(temp.path().join("file.txt"), "lower").unwrap();
let result = heddle(&["capture", "-m", "Case"], Some(temp.path()));
assert!(
result.is_ok(),
"case sensitivity should work: {:?}",
result.err()
);
let status = heddle(&["status", "--output", "text"], Some(temp.path())).unwrap();
assert!(status.contains("clean") || status.contains("Nothing"));
}
#[test]
fn test_hidden_files() {
let temp = TempDir::new().unwrap();
heddle(&["init"], Some(temp.path())).unwrap();
fs::write(temp.path().join(".hidden"), "secret").unwrap();
fs::write(temp.path().join("visible"), "normal").unwrap();
let result = heddle(&["capture", "-m", "Hidden"], Some(temp.path()));
assert!(
result.is_ok(),
"hidden files should work: {:?}",
result.err()
);
let heddle_dir = temp.path().join(".heddle");
assert_exists(&heddle_dir, ".heddle should exist");
}