test: Add test for diff command functionality

This commit is contained in:
Andrew Phillips (aider)
2025-05-12 13:35:53 -03:00
parent c00e777762
commit 098473f5d1

View File

@@ -256,4 +256,59 @@ mod tests {
//assert!(!output.status.success(), "Command succeded when it should have failed: {} RC={}", cmd, output.status);
});
}
// Test: Diff two items and verify the output
#[test]
fn test_diff_items() {
with_temp_env(|data_dir| {
// Create test items with the common environment setup
create_test_items(data_dir);
let env = format!("KEEP_DIR={} cargo run --", data_dir.display());
let cmd = format!("{} --diff 1 2", env);
let output = run_sh(cmd.as_str());
assert!(
output.status.success(),
"Command failed: {} RC={}",
cmd,
output.status
);
assert!(String::from_utf8_lossy(&output.stdout).contains("test content A"));
assert!(String::from_utf8_lossy(&output.stdout).contains("test content B"));
let cmd = format!("{} --diff tag_a tag_b", env);
let output = run_sh(cmd.as_str());
assert!(
output.status.success(),
"Command failed: {} RC={}",
cmd,
output.status
);
assert!(String::from_utf8_lossy(&output.stdout).contains("test content A"));
assert!(String::from_utf8_lossy(&output.stdout).contains("test content B"));
let cmd = format!("{} --diff tag_a 2", env);
let output = run_sh(cmd.as_str());
assert!(
output.status.success(),
"Command failed: {} RC={}",
cmd,
output.status
);
assert!(String::from_utf8_lossy(&output.stdout).contains("test content A"));
assert!(String::from_utf8_lossy(&output.stdout).contains("test content B"));
let cmd = format!("{} --diff 9999 2", env);
let output = run_sh(cmd.as_str());
assert!(
output.status.success(),
"Command failed: {} RC={}",
cmd,
output.status
);
// Output should be empty for non-existent item
assert!(String::from_utf8_lossy(&output.stdout).is_empty());
});
}
}