summaryrefslogtreecommitdiffstats
path: root/src/features/mod.rs
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2020-06-21 18:43:03 -0400
committerDan Davison <dandavison7@gmail.com>2020-06-21 21:17:56 -0400
commit284257fde3ab1d5bca489b68d752a9274ae970bb (patch)
treeca5edcb21e1c6f234ef99a0b6c33d3ceb4a22fa4 /src/features/mod.rs
parent8f2df66af2275cd76dce644f396f0473b1544526 (diff)
Add failing test: builtin features should have command-line flags
Diffstat (limited to 'src/features/mod.rs')
-rw-r--r--src/features/mod.rs18
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]