test: Add test for default_value_os_t
+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::<Opt>();
+ assert!(help.contains("[default: abc.def]"));
+}
+
#[test]
fn detect_os_variant() {
#![allow(unused_parens)] // needed for `as_ref` call
