Changed to unwrap methods, added integration tests

This commit is contained in:
Ricky 2018-11-01 15:48:56 +00:00 committed by David Peter
parent 1dd57e6d7e
commit 558134f6c8
3 changed files with 37 additions and 11 deletions

View File

@ -9,17 +9,11 @@ use dirs::PROJECT_DIRS;
use util::transpose;
pub fn config_file() -> PathBuf {
match env::var("BAT_CONFIG_PATH") {
Ok(env_path) => {
let env_path_buf = PathBuf::from(env_path);
if env_path_buf.is_file() {
return env_path_buf;
} else {
return PROJECT_DIRS.config_dir().join("config");
}
}
Err(_) => PROJECT_DIRS.config_dir().join("config"),
}
env::var("BAT_CONFIG_PATH")
.ok()
.map(PathBuf::from)
.filter(|config_path| config_path.is_file())
.unwrap_or(PROJECT_DIRS.config_dir().join("config"))
}
pub fn get_args_from_config_file() -> Result<Vec<OsString>, shell_words::ParseError> {

1
tests/examples/bat.conf Normal file
View File

@ -0,0 +1 @@
--paging=always

View File

@ -322,3 +322,34 @@ fn pager_disable() {
.success()
.stdout("hello world\n");
}
fn bat_config() -> Command {
let mut cmd = Command::main_binary().unwrap();
cmd.current_dir("tests/examples");
cmd.env_remove("BAT_PAGER");
cmd.env_remove("BAT_CONFIG_PATH");
cmd
}
#[test]
fn config_location_test() {
bat_config()
.env_remove("BAT_CONFIG_PATH")
.env("BAT_CONFIG_PATH", "bat.conf")
.arg("--config-file")
.assert()
.success()
.stdout("bat.conf\n");
}
#[test]
fn config_read_paging_test() {
bat_config()
.env_remove("BAT_CONFIG_PATH")
.env("BAT_CONFIG_PATH", "bat.conf")
.env("BAT_PAGER", "echo testing-config-file")
.arg("test.txt")
.assert()
.success()
.stdout("testing-config-file\n");
}