zag-cli 0.14.0

A unified CLI for AI coding agents — Claude, Codex, Gemini, Copilot, and Ollama
use super::*;
use zag_agent::manpages;

#[test]
fn test_print_manpage_default() {
    assert!(print_manpage(None).is_ok());
}

#[test]
fn test_print_manpage_zag() {
    assert!(print_manpage(Some("zag")).is_ok());
}

#[test]
fn test_print_manpage_all_commands() {
    for cmd in &[
        "run",
        "exec",
        "review",
        "config",
        "session",
        "capability",
        "listen",
        "man",
        "skills",
        "mcp",
        "ps",
        "search",
        "input",
        "broadcast",
    ] {
        assert!(
            print_manpage(Some(cmd)).is_ok(),
            "manpage for '{cmd}' failed"
        );
    }
}

#[test]
fn test_print_manpage_unknown_command() {
    let result = print_manpage(Some("nonexistent"));
    assert!(result.is_err());
    let err = result.unwrap_err().to_string();
    assert!(err.contains("No manual entry"));
    assert!(err.contains("nonexistent"));
}

#[test]
fn test_manpage_content_has_headers() {
    assert!(manpages::ZAG.contains("# zag"));
    assert!(manpages::RUN.contains("# zag run"));
    assert!(manpages::EXEC.contains("# zag exec"));
    assert!(manpages::REVIEW.contains("# zag review"));
    assert!(manpages::CONFIG.contains("# zag config"));
    assert!(manpages::MAN.contains("# zag man"));
    assert!(manpages::SKILLS.contains("# zag skills"));
    assert!(manpages::MCP.contains("# zag mcp"));
    assert!(manpages::PS.contains("# zag ps"));
    assert!(manpages::SEARCH.contains("# zag search"));
    assert!(manpages::INPUT.contains("# zag input"));
    assert!(manpages::BROADCAST.contains("# zag broadcast"));
}

#[test]
fn test_help_agent_reexport_matches_library() {
    assert_eq!(HELP_AGENT, manpages::HELP_AGENT);
}