38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
use super::*;
|
|
|
|
#[test]
|
|
fn keepenv_emits_setenv_for_present_key() {
|
|
let parent = vec![("XDG_RUNTIME_DIR".into(), "/run/user/1000".into())];
|
|
let args = keepenv_args(&["XDG_RUNTIME_DIR".into()], &parent);
|
|
assert_eq!(args, vec!["--setenv", "XDG_RUNTIME_DIR", "/run/user/1000"]);
|
|
}
|
|
|
|
#[test]
|
|
fn keepenv_skips_absent_keys() {
|
|
let parent = vec![("HOME".into(), "/home/me".into())];
|
|
let args = keepenv_args(&["XDG_RUNTIME_DIR".into()], &parent);
|
|
assert!(args.is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn keepenv_preserves_caller_key_order() {
|
|
let parent = vec![
|
|
("B".into(), "2".into()),
|
|
("A".into(), "1".into()),
|
|
("C".into(), "3".into()),
|
|
];
|
|
let args = keepenv_args(&["A".into(), "B".into(), "C".into()], &parent);
|
|
assert_eq!(
|
|
args,
|
|
vec![
|
|
"--setenv", "A", "1", "--setenv", "B", "2", "--setenv", "C", "3"
|
|
]
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn keepenv_empty_keys_yields_nothing() {
|
|
let parent = vec![("A".into(), "1".into())];
|
|
assert!(keepenv_args(&[], &parent).is_empty());
|
|
}
|