#![allow(clippy::unwrap_used, clippy::expect_used)]
fn hermetic_home() -> tempfile::TempDir {
let tmp_root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("tmp");
std::fs::create_dir_all(&tmp_root).unwrap();
tempfile::tempdir_in(&tmp_root).unwrap()
}
fn lease_release_cmd(home: &std::path::Path, token: &str) -> std::process::Command {
let mut cmd = std::process::Command::new(env!("CARGO_BIN_EXE_omni-dev"));
cmd.args(["drive", "lease", "release", token])
.env("HOME", home)
.env_remove("XDG_DATA_HOME")
.env_remove("XDG_STATE_HOME")
.env_remove("XDG_CONFIG_HOME")
.env_remove("DRIVE_CLIENT_ID")
.env_remove("DRIVE_CLIENT_SECRET")
.env_remove("DRIVE_REFRESH_TOKEN");
cmd
}
#[test]
fn release_of_an_unknown_token_exits_non_zero() {
let home = hermetic_home();
let output = lease_release_cmd(home.path(), "no-such-token")
.output()
.expect("failed to run binary");
assert_eq!(
output.status.code(),
Some(1),
"NoSuchToken must exit 1 — stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
stderr.contains("no lease in this ledger was ever acquired with that token"),
"{stderr}"
);
}