use super::dir_is_on_path;
use std::ffi::OsString;
#[test]
fn trailing_slash_path_entry_still_matches() {
let dir = tempfile::tempdir().expect("tempdir");
let install = dir.path().join("bin");
std::fs::create_dir(&install).expect("mkdir bin");
let mut with_slash = install.clone().into_os_string();
with_slash.push(std::path::MAIN_SEPARATOR.to_string());
let pathvar =
std::env::join_paths([OsString::from("/nonexistent/x"), with_slash]).expect("join_paths");
assert!(
dir_is_on_path(&install, &pathvar),
"a trailing-slash PATH entry must canonicalize-match the install dir"
);
}
#[test]
fn dir_absent_from_path_reports_false() {
let dir = tempfile::tempdir().expect("tempdir");
let install = dir.path().join("bin");
std::fs::create_dir(&install).expect("mkdir bin");
let other = dir.path().join("other");
std::fs::create_dir(&other).expect("mkdir other");
let pathvar = std::env::join_paths([other.into_os_string()]).expect("join_paths");
assert!(
!dir_is_on_path(&install, &pathvar),
"an install dir not present in PATH must report false"
);
}