use tempfile::TempDir;
#[test]
fn init_refuses_existing_without_force() {
let tmp = TempDir::new().unwrap();
let root = tmp.path();
let s1 = std::process::Command::new(env!("CARGO_BIN_EXE_gradatum-admin"))
.arg("init")
.arg("--preset")
.arg("hierarchical")
.arg("--root")
.arg(root)
.arg("--non-interactive")
.current_dir(std::env::temp_dir())
.status()
.unwrap();
assert!(s1.success(), "première init a échoué");
let s2 = std::process::Command::new(env!("CARGO_BIN_EXE_gradatum-admin"))
.arg("init")
.arg("--preset")
.arg("hierarchical")
.arg("--root")
.arg(root)
.arg("--non-interactive")
.current_dir(std::env::temp_dir())
.status()
.unwrap();
assert!(
!s2.success(),
"deuxième init sans --force aurait dû échouer"
);
}
#[test]
fn init_force_overrides() {
let tmp = TempDir::new().unwrap();
let root = tmp.path();
let s1 = std::process::Command::new(env!("CARGO_BIN_EXE_gradatum-admin"))
.arg("init")
.arg("--preset")
.arg("hierarchical")
.arg("--root")
.arg(root)
.arg("--non-interactive")
.current_dir(std::env::temp_dir())
.status()
.unwrap();
assert!(s1.success(), "init initiale a échoué");
let s2 = std::process::Command::new(env!("CARGO_BIN_EXE_gradatum-admin"))
.arg("init")
.arg("--preset")
.arg("hierarchical")
.arg("--root")
.arg(root)
.arg("--non-interactive")
.arg("--force")
.current_dir(std::env::temp_dir())
.status()
.unwrap();
assert!(s2.success(), "re-init avec --force a échoué");
}