node-app-build 6.5.0

Mini app developer CLI: scaffold, validate, package node-app-* Debian packages
//! End-to-end packaging test. Toolchain/Docker-heavy, so gated behind
//! NODE_APP_E2E_PACKAGE=1 (set in CI where Docker + cross are available).
use assert_cmd::Command;

fn enabled() -> bool {
    std::env::var("NODE_APP_E2E_PACKAGE").as_deref() == Ok("1")
}

#[test]
fn native_app_packages_for_arm64() {
    if !enabled() {
        eprintln!("skipping: set NODE_APP_E2E_PACKAGE=1 to run");
        return;
    }
    let dir = tempfile::tempdir().unwrap();
    Command::cargo_bin("node-app").unwrap()
        .args(["new", "e2e-native", "--profile", "native", "--out"])
        .arg(dir.path().join("e2e-native"))
        .assert().success();
    let proj = dir.path().join("e2e-native");
    Command::cargo_bin("node-app").unwrap()
        .args(["build", "--arch", "arm64"]).current_dir(&proj)
        .assert().success();
    Command::cargo_bin("node-app").unwrap()
        .args(["package", "--arch", "arm64"]).current_dir(&proj)
        .assert().success();
    let deb = std::fs::read_dir(proj.join("target")).unwrap()
        .filter_map(|e| e.ok())
        .any(|e| e.file_name().to_string_lossy().ends_with("_arm64.deb"));
    assert!(deb, "expected an _arm64.deb in target/");
}