feat: Add configuration for add_newline (#116)

- Replace TableExt with a Config trait that extends toml::value::Table
Add configuration for add_newline
- add_newline is a root-level configuration value. When set to false, the initial newline before the prompt is removed.
This commit is contained in:
Matan Kushner
2019-07-27 18:25:13 -04:00
committed by GitHub
parent 95ce43ee70
commit 0bc28c521d
7 changed files with 73 additions and 28 deletions
+3 -2
View File
@@ -9,8 +9,8 @@ lazy_static! {
static ref EMPTY_CONFIG: PathBuf = MANIFEST_DIR.join("empty_config.toml");
}
/// Run an instance of starship
fn run_starship() -> process::Command {
/// Render the full starship prompt
pub fn render_prompt() -> process::Command {
let mut command = process::Command::new("./target/debug/starship");
command
@@ -22,6 +22,7 @@ fn run_starship() -> process::Command {
command
}
/// Render a specific starship module by name
pub fn render_module(module_name: &str) -> process::Command {
let mut command = process::Command::new("./target/debug/starship");
+21
View File
@@ -32,3 +32,24 @@ fn disabled_module() -> io::Result<()> {
Ok(())
}
#[test]
fn add_newline_configuration() -> io::Result<()> {
// Start prompt with newline
let default_output = common::render_prompt().output()?;
let actual = String::from_utf8(default_output.stdout).unwrap();
let expected = actual.trim_start();
assert_ne!(actual, expected);
// Start prompt without newline
let output = common::render_prompt()
.use_config(toml::toml! {
add_newline = false
})
.output()?;
let actual = String::from_utf8(output.stdout).unwrap();
let expected = actual.trim_start();
assert_eq!(expected, actual);
Ok(())
}