diff options
author | Dan Davison <dandavison7@gmail.com> | 2020-06-10 16:28:52 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2020-06-10 17:25:44 -0400 |
commit | 2b8869cf16dd15469753849fae2fb3c26e82bbcf (patch) | |
tree | 6b242891e982410fcf5504e5891e0611b71abf60 /src/config.rs | |
parent | 39b4d39d7f2b3c07e316ea8640640602d2115d14 (diff) |
Refactor: straighten out command line arguments processing
Diffstat (limited to 'src/config.rs')
-rw-r--r-- | src/config.rs | 50 |
1 files changed, 16 insertions, 34 deletions
diff --git a/src/config.rs b/src/config.rs index b8d452c3..6a68b3fc 100644 --- a/src/config.rs +++ b/src/config.rs @@ -388,9 +388,6 @@ mod tests { use super::*; use std::env; - use structopt::clap; - - use crate::cli; use crate::color; use crate::tests::integration_test_utils::integration_test_utils; @@ -403,21 +400,15 @@ mod tests { Dark, }; for ( - syntax_theme_option, + syntax_theme, bat_theme_env_var, - mode_option, // (--light, --dark) + mode, // (--light, --dark) expected_syntax_theme, expected_mode, ) in vec![ (None, "", None, syntax_theme::DEFAULT_DARK_THEME, Mode::Dark), - (Some("GitHub".to_string()), "", None, "GitHub", Mode::Light), - ( - Some("GitHub".to_string()), - "1337", - None, - "GitHub", - Mode::Light, - ), + (Some("GitHub"), "", None, "GitHub", Mode::Light), + (Some("GitHub"), "1337", None, "GitHub", Mode::Light), (None, "1337", None, "1337", Mode::Dark), ( None, @@ -448,14 +439,8 @@ mod tests { Mode::Light, ), (None, "1337", Some(Mode::Light), "1337", Mode::Light), - (Some("none".to_string()), "", None, "none", Mode::Dark), - ( - Some("None".to_string()), - "", - Some(Mode::Light), - "None", - Mode::Light, - ), + (Some("none"), "", None, "none", Mode::Dark), + (Some("None"), "", Some(Mode::Light), "None", Mode::Light), ] { if bat_theme_env_var == "<not set>" { env::remove_var("BAT_THEME") @@ -463,24 +448,21 @@ mod tests { env::set_var("BAT_THEME", bat_theme_env_var); } let is_true_color = true; - let mut options = integration_test_utils::get_command_line_options(); - options.syntax_theme = syntax_theme_option; - match mode_option { + let mut args = vec![]; + if let Some(syntax_theme) = syntax_theme { + args.push("--syntax-theme"); + args.push(syntax_theme); + } + match mode { Some(Mode::Light) => { - options.light = true; - options.dark = false; + args.push("--light"); } Some(Mode::Dark) => { - options.light = false; - options.dark = true; - } - None => { - options.light = false; - options.dark = false; + args.push("--dark"); } + None => {} } - let config = - cli::process_command_line_arguments(options, clap::ArgMatches::new(), &mut None); + let config = integration_test_utils::get_config_from_args(&args); assert_eq!(config.syntax_theme_name, expected_syntax_theme); if syntax_theme::is_no_syntax_highlighting_theme_name(expected_syntax_theme) { assert!(config.syntax_theme.is_none()) |