diff options
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r-- | cli/args/flags.rs | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 8899cbbb1..9669f8bca 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -84,15 +84,16 @@ pub struct CompletionsFlags { pub buf: Box<[u8]>, } -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq, Default)] pub enum CoverageType { + #[default] Summary, Detailed, Lcov, Html, } -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq, Default)] pub struct CoverageFlags { pub files: FileFlags, pub output: Option<PathBuf>, @@ -1422,10 +1423,9 @@ Generate html reports from lcov: ) .arg( Arg::new("files") - .num_args(1..) + .num_args(0..) .value_parser(value_parser!(PathBuf)) .action(ArgAction::Append) - .required(true) .value_hint(ValueHint::AnyPath), ) }) @@ -3307,9 +3307,10 @@ fn completions_parse( } fn coverage_parse(flags: &mut Flags, matches: &mut ArgMatches) { + let default_files = vec![PathBuf::from("coverage")]; let files = match matches.remove_many::<PathBuf>("files") { Some(f) => f.collect(), - None => vec![], + None => default_files, }; let ignore = match matches.remove_many::<PathBuf>("ignore") { Some(f) => f.collect(), @@ -7914,10 +7915,9 @@ mod tests { include: vec![PathBuf::from("foo.json")], ignore: vec![], }, - output: None, include: vec![r"^file:".to_string()], exclude: vec![r"test\.(js|mjs|ts|jsx|tsx)$".to_string()], - r#type: CoverageType::Summary + ..CoverageFlags::default() }), ..Flags::default() } @@ -7950,6 +7950,27 @@ mod tests { } ); } + + #[test] + fn coverage_with_default_files() { + let r = flags_from_vec(svec!["deno", "coverage",]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Coverage(CoverageFlags { + files: FileFlags { + include: vec![PathBuf::from("coverage")], + ignore: vec![], + }, + include: vec![r"^file:".to_string()], + exclude: vec![r"test\.(js|mjs|ts|jsx|tsx)$".to_string()], + ..CoverageFlags::default() + }), + ..Flags::default() + } + ); + } + #[test] fn location_with_bad_scheme() { #[rustfmt::skip] |