chug-cli 0.1.1

The fastest way to consume Homebrew bottles
Documentation
use std::{fs, path::PathBuf, process::Command};

mod output_dir;

#[test]
fn test_remove_python() {
    let output = output_dir::new();

    let program = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("target/debug/chug");
    let status = Command::new(&program)
        .args(["add", "python@3.12"])
        .status()
        .unwrap();
    assert!(status.success());

    let status = Command::new(&program)
        .args(["remove", "python@3.12"])
        .status()
        .unwrap();
    assert!(status.success());

    let program = output.bin_dir().join("python3.12");
    assert!(!program.try_exists().unwrap());

    let bottles_dir = output.data_dir().join("chug/bottles");
    assert_eq!(fs::read_dir(&bottles_dir).unwrap().count(), 0);
}

#[test]
fn test_remove_go_by_alias() {
    let output = output_dir::new();

    let program = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("target/debug/chug");
    let status = Command::new(&program)
        .args(["add", "golang"])
        .status()
        .unwrap();
    assert!(status.success());

    let status = Command::new(&program)
        .args(["remove", "golang"])
        .status()
        .unwrap();
    assert!(status.success());

    let program = output.bin_dir().join("go");
    assert!(!program.try_exists().unwrap());

    let bottles_dir = output.data_dir().join("chug/bottles");
    assert_eq!(fs::read_dir(&bottles_dir).unwrap().count(), 0);
}