diff options
Diffstat (limited to 'src/finder')
-rw-r--r-- | src/finder/config.rs | 61 | ||||
-rw-r--r-- | src/finder/error.rs | 1 |
2 files changed, 61 insertions, 1 deletions
diff --git a/src/finder/config.rs b/src/finder/config.rs index bc39556..d0a0570 100644 --- a/src/finder/config.rs +++ b/src/finder/config.rs @@ -41,3 +41,64 @@ impl Provider for Config { Serialized::defaults(Config::default()).data() } } + +#[cfg(test)] +mod tests { + use super::*; + use figment::providers::{Format, Serialized, Toml}; + + #[test] + fn defaults() { + figment::Jail::expect_with(|jail| { + jail.create_file( + "tmuxr.toml", + r#" + program = "fzf-tmux" + args = [ + "--", + "--multi", + "--print-query", + "-d/", + "--preview-window='right,75%,<80(up,75%,border-bottom)'", + "--preview='sel={}; less ${sel:-{q}} 2>/dev/null'", + ] + "#, + )?; + + let config: Config = Figment::from(Serialized::defaults(Config::default())) + .merge(Toml::file("tmuxr.toml")) + .extract()?; + + assert_eq!(config, Config::default()); + + Ok(()) + }); + } + + #[test] + fn custom() { + figment::Jail::expect_with(|jail| { + jail.create_file( + "tmuxr.toml", + r#" + program = "fzf" + args = ["-0", "-1", "--preview='cat'"] + "#, + )?; + + let config: Config = Figment::from(Serialized::defaults(Config::default())) + .merge(Toml::file("tmuxr.toml")) + .extract()?; + + assert_eq!( + config, + Config { + program: "fzf".into(), + args: vec!["-0".into(), "-1".into(), "--preview='cat'".into()], + } + ); + + Ok(()) + }); + } +} diff --git a/src/finder/error.rs b/src/finder/error.rs index 46d39c4..181da21 100644 --- a/src/finder/error.rs +++ b/src/finder/error.rs @@ -8,4 +8,3 @@ pub enum Error { #[error("Stdin error: Failed to get finder's stdin")] Stdin, } - |