test: Add test for diff command functionality
This commit is contained in:
55
src/tests.rs
55
src/tests.rs
@@ -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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user