use std::process::Command;

#[test]
fn conversion_failure_leaves_no_output() {
    let dir = std::env::temp_dir().join(format!("tbc-convert-{}", std::process::id()));
    std::fs::create_dir_all(&dir).unwrap();
    let input = dir.join("broken.frm");
    let output = dir.join("converted.frm");
    std::fs::write(&input, b"not a form").unwrap();

    let result = Command::new(env!("CARGO_BIN_EXE_tbc"))
        .args([
            "convert-frm",
            input.to_str().unwrap(),
            output.to_str().unwrap(),
        ])
        .output()
        .unwrap();

    assert!(!result.status.success());
    assert!(!output.exists());
    assert!(String::from_utf8_lossy(&result.stderr).contains("0x0000"));
    std::fs::remove_dir_all(dir).unwrap();
}
