diff options
author | Dan Davison <dandavison7@gmail.com> | 2020-06-21 18:43:03 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2020-06-21 21:17:56 -0400 |
commit | 284257fde3ab1d5bca489b68d752a9274ae970bb (patch) | |
tree | ca5edcb21e1c6f234ef99a0b6c33d3ceb4a22fa4 | |
parent | 8f2df66af2275cd76dce644f396f0473b1544526 (diff) |
Add failing test: builtin features should have command-line flags
-rw-r--r-- | src/features/mod.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/features/mod.rs b/src/features/mod.rs index 77520bb7..ef80f1e5 100644 --- a/src/features/mod.rs +++ b/src/features/mod.rs @@ -76,17 +76,35 @@ pub mod navigate; #[cfg(test)] pub mod tests { + use std::collections::HashSet; use std::fs::{remove_file, File}; use std::io::Write; use std::path::Path; use itertools; + use structopt::{clap, StructOpt}; + use crate::cli; use crate::config; + use crate::features::make_builtin_features; use crate::git_config::GitConfig; + use crate::set_options::set_options; use crate::style::{DecorationStyle, Style}; #[test] + fn test_builtin_features_have_flags() { + let builtin_features = make_builtin_features(); + let mut args = vec!["delta".to_string()]; + args.extend(builtin_features.keys().map(|s| format!("--{}", s))); + let mut opt = cli::Opt::from_iter(args); + set_options(&mut opt, &mut None, &clap::ArgMatches::new()); + let features: HashSet<&str> = opt.features.split_whitespace().collect(); + for feature in builtin_features.keys() { + assert!(features.contains(feature.as_str())) + } + } + + #[test] fn test_main_section() { let git_config_contents = b" [delta] |