diff --git a/tests/derive/default_value.rs b/tests/derive/default_value.rs index fc07e4c1128..6a78f8d6b75 100644 --- a/tests/derive/default_value.rs +++ b/tests/derive/default_value.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use clap::{CommandFactory, Parser}; use crate::utils; @@ -44,6 +46,30 @@ fn auto_default_value_t() { assert!(help.contains("[default: 0]")); } +#[test] +fn default_value_os_t() { + #[derive(Parser, PartialEq, Debug)] + struct Opt { + #[clap(value_parser, default_value_os_t = PathBuf::from("abc.def"))] + arg: PathBuf, + } + assert_eq!( + Opt { + arg: PathBuf::from("abc.def") + }, + Opt::try_parse_from(&["test"]).unwrap() + ); + assert_eq!( + Opt { + arg: PathBuf::from("ghi") + }, + Opt::try_parse_from(&["test", "ghi"]).unwrap() + ); + + let help = utils::get_long_help::(); + assert!(help.contains("[default: abc.def]")); +} + #[test] fn detect_os_variant() { #![allow(unused_parens)] // needed for `as_ref` call