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()); }