linuxutils-misc 0.1.0

Miscellaneous utilities from linuxutils
Documentation
use assert_cmd::Command;
use predicates::prelude::*;

fn whereis() -> Command {
    Command::cargo_bin("whereis").unwrap()
}

#[test]
fn find_ls() {
    whereis().arg("ls").assert().success().stdout(
        predicate::str::contains("ls:").and(predicate::str::contains("/ls")),
    );
}

#[test]
fn binaries_only() {
    whereis().args(["-b", "ls"]).assert().success().stdout(
        predicate::str::contains("ls:")
            .and(predicate::str::contains("/bin/ls")),
    );
}

#[test]
fn manuals_only() {
    whereis().args(["-m", "ls"]).assert().success().stdout(
        predicate::str::contains("ls:").and(predicate::str::contains("man")),
    );
}

#[test]
fn list_paths() {
    whereis()
        .arg("-l")
        .assert()
        .success()
        .stdout(predicate::str::contains("bin:"));
}

#[test]
fn nonexistent_command() {
    whereis()
        .arg("nonexistent_command_xyz_12345")
        .assert()
        .success()
        .stdout(
            predicate::str::is_match("^nonexistent_command_xyz_12345:\\s*\n$")
                .unwrap(),
        );
}

#[test]
fn multiple_names() {
    whereis().args(["ls", "cat"]).assert().success().stdout(
        predicate::str::contains("ls:").and(predicate::str::contains("cat:")),
    );
}

#[test]
fn combined_flags() {
    whereis()
        .args(["-b", "-m", "ls"])
        .assert()
        .success()
        .stdout(predicate::str::contains("ls:"));
}