eggress-cli 1.0.7

CLI binary for the eggress multi-protocol proxy
Documentation
use std::process::Command;

fn eggress_bin() -> Command {
    let mut cmd = Command::new(env!("CARGO_BIN_EXE_eggress"));
    cmd.env("RUST_LOG", "error");
    cmd
}

#[test]
fn version_subcommand_prints_stable_version_line() {
    let output = eggress_bin()
        .arg("version")
        .output()
        .expect("failed to run eggress version");
    assert_eq!(
        output.status.code(),
        Some(0),
        "eggress version must exit 0, got {:?}\nstderr: {}",
        output.status.code(),
        String::from_utf8_lossy(&output.stderr),
    );
    let stdout = String::from_utf8_lossy(&output.stdout);
    let expected = format!("eggress {}", env!("CARGO_PKG_VERSION"));
    assert_eq!(
        stdout.trim_end(),
        expected,
        "eggress version must print exactly one stable line"
    );
    assert_eq!(
        stdout.lines().count(),
        1,
        "eggress version must print exactly one line, got: {stdout:?}"
    );
}

#[test]
fn version_flag_remains_functional() {
    let output = eggress_bin()
        .arg("--version")
        .output()
        .expect("failed to run eggress --version");
    assert_eq!(output.status.code(), Some(0));
    let stdout = String::from_utf8_lossy(&output.stdout);
    assert!(
        stdout.contains(env!("CARGO_PKG_VERSION")),
        "eggress --version must report the package version, got: {stdout:?}"
    );
}

#[test]
fn pproxy_version_reports_release_version() {
    let output = Command::new(env!("CARGO_BIN_EXE_pproxy"))
        .arg("--version")
        .output()
        .expect("failed to run pproxy --version");
    assert_eq!(output.status.code(), Some(0));
    let stdout = String::from_utf8_lossy(&output.stdout);
    assert!(
        stdout.contains(env!("CARGO_PKG_VERSION")),
        "pproxy --version must report the release version, got: {stdout:?}"
    );
}