earl 0.5.2

AI-safe CLI for AI agents
use assert_cmd::cargo::cargo_bin_cmd;

#[test]
fn top_level_help_lists_mcp_command() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.arg("--help");

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("mcp"));
}

#[test]
fn mcp_help_includes_stdio_transport() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("stdio"));
}

#[test]
fn mcp_help_includes_http_transport() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("http"));
}

#[test]
fn mcp_help_includes_listen_flag() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("--listen"));
}

#[test]
fn mcp_help_includes_mode_flag() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("--mode"));
}

#[test]
fn mcp_help_includes_yes_flag() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("--yes"));
}

#[test]
fn mcp_help_includes_discovery_subcommand() {
    let mut cmd = cargo_bin_cmd!("earl");
    cmd.args(["mcp", "--help"]);

    let out = cmd.assert().success().get_output().stdout.clone();
    let stdout = String::from_utf8(out).unwrap();
    assert!(stdout.contains("discovery"));
}