mod test_helpers;
use test_helpers::{jj_available, run_jjj, setup_test_repo};
#[test]
fn test_fetch_no_remote_configured_fails() {
if !jj_available() {
return;
}
let dir = setup_test_repo();
let output = run_jjj(&dir, &["fetch"]);
let stderr = String::from_utf8_lossy(&output.stderr);
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
!output.status.success(),
"fetch without a configured remote should fail. stdout: {}, stderr: {}",
stdout,
stderr
);
}
#[test]
fn test_fetch_nonexistent_remote_fails() {
if !jj_available() {
return;
}
let dir = setup_test_repo();
let output = run_jjj(&dir, &["fetch", "--remote", "nonexistent"]);
let stderr = String::from_utf8_lossy(&output.stderr);
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
!output.status.success(),
"fetch from nonexistent remote should fail. stdout: {}, stderr: {}",
stdout,
stderr
);
}
#[test]
fn test_fetch_uses_origin_by_default() {
if !jj_available() {
return;
}
let dir = setup_test_repo();
let output = run_jjj(&dir, &["fetch"]);
let stderr = String::from_utf8_lossy(&output.stderr);
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
!output.status.success(),
"fetch with default remote should fail when no origin exists. stdout: {}, stderr: {}",
stdout,
stderr
);
let combined = format!("{}{}", stdout, stderr);
assert!(
combined.contains("origin"),
"Error output should reference 'origin' as the default remote. Got stdout: {}, stderr: {}",
stdout,
stderr
);
}