summaryrefslogtreecommitdiffstats
path: root/src/features/mod.rs
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2020-06-21 21:29:06 -0400
committerDan Davison <dandavison7@gmail.com>2020-06-21 21:29:06 -0400
commitf942d0f6e34209a09e9ccf20585f47c2a967358f (patch)
tree2480005c15a39d3915b79abc1df00682a368a99c /src/features/mod.rs
parent7d7dd11dc783aca02d2a8af3456e16b4f37efe4e (diff)
Add failing test: features should add to set, not replace it
Diffstat (limited to 'src/features/mod.rs')
-rw-r--r--src/features/mod.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/features/mod.rs b/src/features/mod.rs
index ef80f1e5..6a80539f 100644
--- a/src/features/mod.rs
+++ b/src/features/mod.rs
@@ -105,6 +105,26 @@ pub mod tests {
}
#[test]
+ fn test_feature_is_not_removed_by_addition_of_another_feature() {
+ let dummy_arg_matches = clap::ArgMatches::new();
+ let mut opt = cli::Opt::from_iter(&["delta", "--color-only"]);
+ set_options(&mut opt, &mut None, &dummy_arg_matches);
+ let features: HashSet<&str> = opt.features.split_whitespace().collect();
+ assert!(features.contains("color-only"));
+ let git_config_contents = b"
+[delta]
+ features = my-feature
+";
+ let git_config_path =
+ "delta__test_feature_is_not_removed_by_addition_of_another_feature.gitconfig";
+ let git_config = make_git_config(git_config_contents, git_config_path);
+ set_options(&mut opt, &mut Some(git_config), &dummy_arg_matches);
+ let features: HashSet<&str> = opt.features.split_whitespace().collect();
+ assert!(features.contains("my-feature"));
+ assert!(features.contains("color-only"));
+ }
+
+ #[test]
fn test_main_section() {
let git_config_contents = b"
[delta]