use crate::common;
use common::{OutputAssertions, TestRepo};
use std::process::Command;
#[test]
fn test_demo_help() {
let repo = TestRepo::new();
let output = repo.run_stax(&["--help"]);
output.assert_success();
output.assert_stdout_contains("demo");
}
#[test]
fn test_demo_noninteractive_exits_cleanly() {
let stax_bin = common::stax_bin();
let tmp = tempfile::tempdir().expect("Failed to create temp dir");
let output = Command::new(stax_bin)
.args(["demo"])
.current_dir(tmp.path())
.env("STAX_DISABLE_UPDATE_CHECK", "1")
.stdin(std::process::Stdio::null())
.output()
.expect("Failed to run stax demo");
assert!(
output.status.success() || !output.status.success(),
"Demo should not panic"
);
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
!stderr.contains("panic"),
"Demo should not panic, got: {}",
stderr
);
}