use std::fs;
use std::process::Command;
#[test]
fn init_non_interactive_works() {
let temp_dir = tempfile::tempdir().unwrap();
let dir = temp_dir.path();
let current_exe = std::env::current_exe().unwrap();
let target_debug = current_exe.parent().unwrap().parent().unwrap();
let cargo_tauri = if cfg!(windows) {
target_debug.join("cargo-tauri.exe")
} else {
target_debug.join("cargo-tauri")
};
assert!(
cargo_tauri.exists(),
"cargo-tauri binary not found at {:?}",
cargo_tauri
);
let output = Command::new(&cargo_tauri)
.arg("init")
.arg("--app-name")
.arg("testapp")
.arg("--frontend-dist")
.arg("../dist")
.arg("--dev-url")
.arg("http://localhost:3000")
.current_dir(dir)
.output()
.expect("failed to run cargo-tauri init");
assert!(output.status.success(), "init failed: {:?}", output);
let src_tauri = dir.join("src-tauri");
assert!(src_tauri.exists(), "src-tauri directory was not created");
let conf_path = src_tauri.join("tauri.conf.json");
assert!(conf_path.exists(), "tauri.conf.json not found");
let content = fs::read_to_string(&conf_path).unwrap();
assert!(content.contains("testapp"), "app name not found in config");
}