diff options
author | Matan Kushner <hello@matchai.me> | 2019-05-01 16:34:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-01 16:34:24 -0400 |
commit | c6ee5c6ac16d360ab1a44d097c91fe9f98f20f85 (patch) | |
tree | e06814175f34e508fbae4de66571e3d0042786e7 /tests | |
parent | d945b03093cf130bdc702056650f7e8e8869753b (diff) |
Refactor segments into modules (#40)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/character.rs | 21 | ||||
-rw-r--r-- | tests/common.rs | 10 | ||||
-rw-r--r-- | tests/directory.rs | 91 | ||||
-rw-r--r-- | tests/nodejs.rs | 36 |
4 files changed, 77 insertions, 81 deletions
diff --git a/tests/character.rs b/tests/character.rs index 511423da9..be0b1a8e3 100644 --- a/tests/character.rs +++ b/tests/character.rs @@ -1,29 +1,20 @@ use ansi_term::Color; -use starship::segment::Segment; use std::path::Path; mod common; #[test] -fn char_segment_success_status() { +fn char_module_success_status() { let dir = Path::new("~"); - let expected = Segment::new("char") - .set_value("➜") - .set_style(Color::Green) - .set_prefix(None) - .output(); - let actual = common::render_segment_with_status("char", &dir, "0"); + let expected = format!("{} ", Color::Green.bold().paint("➜")); + let actual = common::render_module_with_status("char", &dir, "0"); assert_eq!(expected, actual); } #[test] -fn char_segment_failure_status() { +fn char_module_failure_status() { let dir = Path::new("~"); - let expected = Segment::new("char") - .set_value("➜") - .set_style(Color::Red) - .set_prefix(None) - .output(); - let actual = common::render_segment_with_status("char", &dir, "1"); + let expected = format!("{} ", Color::Red.bold().paint("➜")); + let actual = common::render_module_with_status("char", &dir, "1"); assert_eq!(expected, actual); } diff --git a/tests/common.rs b/tests/common.rs index 040732ff0..2d2cd2a00 100644 --- a/tests/common.rs +++ b/tests/common.rs @@ -4,14 +4,14 @@ use starship::modules; use std::path::PathBuf; #[allow(dead_code)] -pub fn render_segment<T>(module: &str, path: T) -> String +pub fn render_module<T>(module: &str, path: T) -> String where T: Into<PathBuf>, { - render_segment_with_status(module, path.into(), "0") + render_module_with_status(module, path.into(), "0") } -pub fn render_segment_with_status<T>(module: &str, path: T, status: &str) -> String +pub fn render_module_with_status<T>(module: &str, path: T, status: &str) -> String where T: Into<PathBuf>, { @@ -21,7 +21,7 @@ where .get_matches_from(vec!["starship", status]); let context = Context::new_with_dir(args, path.into()); - let segment = modules::handle(module, &context); + let module = modules::handle(module, &context); - segment.unwrap().output() + module.unwrap().to_string() } diff --git a/tests/directory.rs b/tests/directory.rs index 2eb20f486..38efc2988 100644 --- a/tests/directory.rs +++ b/tests/directory.rs @@ -1,7 +1,6 @@ use ansi_term::Color; use dirs::home_dir; use git2::Repository; -use starship::segment::Segment; use std::fs; use std::io; use std::path::Path; @@ -13,11 +12,8 @@ mod common; fn home_directory() -> io::Result<()> { let dir = Path::new("~"); - let expected = Segment::new("dir") - .set_value("~") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!("via {} ", Color::Cyan.bold().paint("~").to_string()); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -29,11 +25,11 @@ fn directory_in_home() -> io::Result<()> { let dir = home_dir().unwrap().join("starship/engine"); fs::create_dir_all(&dir)?; - let expected = Segment::new("dir") - .set_value("~/starship/engine") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!( + "via {} ", + Color::Cyan.bold().paint("~/starship/engine").to_string() + ); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -45,11 +41,14 @@ fn truncated_directory_in_home() -> io::Result<()> { let dir = home_dir().unwrap().join("starship/engine/schematics"); fs::create_dir_all(&dir)?; - let expected = Segment::new("dir") - .set_value("starship/engine/schematics") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!( + "via {} ", + Color::Cyan + .bold() + .paint("starship/engine/schematics") + .to_string() + ); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -59,11 +58,8 @@ fn truncated_directory_in_home() -> io::Result<()> { fn root_directory() -> io::Result<()> { let dir = Path::new("/"); - let expected = Segment::new("dir") - .set_value("/") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!("via {} ", Color::Cyan.bold().paint("/").to_string()); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -73,11 +69,8 @@ fn root_directory() -> io::Result<()> { fn directory_in_root() -> io::Result<()> { let dir = Path::new("/opt"); - let expected = Segment::new("dir") - .set_value("/opt") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!("via {} ", Color::Cyan.bold().paint("/opt").to_string()); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -89,11 +82,14 @@ fn truncated_directory_in_root() -> io::Result<()> { let dir = Path::new("/opt/starship/thrusters/rocket"); fs::create_dir_all(&dir)?; - let expected = Segment::new("dir") - .set_value("starship/thrusters/rocket") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!( + "via {} ", + Color::Cyan + .bold() + .paint("starship/thrusters/rocket") + .to_string() + ); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -108,11 +104,11 @@ fn git_repo_root() -> io::Result<()> { Repository::init(&repo_dir).unwrap(); - let expected = Segment::new("dir") - .set_value("rocket-controls") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &repo_dir); + let expected = format!( + "via {} ", + Color::Cyan.bold().paint("rocket-controls").to_string() + ); + let actual = common::render_module("dir", &repo_dir); assert_eq!(expected, actual); Ok(()) @@ -128,11 +124,11 @@ fn directory_in_git_repo() -> io::Result<()> { Repository::init(&repo_dir).unwrap(); - let expected = Segment::new("dir") - .set_value("rocket-controls/src") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!( + "via {} ", + Color::Cyan.bold().paint("rocket-controls/src").to_string() + ); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) @@ -148,11 +144,14 @@ fn truncated_directory_in_git_repo() -> io::Result<()> { Repository::init(&repo_dir).unwrap(); - let expected = Segment::new("dir") - .set_value("src/meters/fuel-gauge") - .set_style(Color::Cyan.bold()) - .output(); - let actual = common::render_segment("dir", &dir); + let expected = format!( + "via {} ", + Color::Cyan + .bold() + .paint("src/meters/fuel-gauge") + .to_string() + ); + let actual = common::render_module("dir", &dir); assert_eq!(expected, actual); Ok(()) diff --git a/tests/nodejs.rs b/tests/nodejs.rs index fe07a0cd4..38bca73bf 100644 --- a/tests/nodejs.rs +++ b/tests/nodejs.rs @@ -12,11 +12,13 @@ fn folder_with_package_json() -> io::Result<()> { let dir = TempDir::new()?; File::create(dir.path().join("package.json"))?; - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green.bold()) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); + let expected = format!( + "via {} ", + Segment::new("node") + .set_value("⬢ v12.0.0") + .set_style(Color::Green.bold()) + ); + let actual = common::render_module("nodejs", &dir.path()); assert_eq!(expected, actual); Ok(()) @@ -28,11 +30,13 @@ fn folder_with_js_file() -> io::Result<()> { let dir = TempDir::new()?; File::create(dir.path().join("index.js"))?; - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green.bold()) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); + let expected = format!( + "via {} ", + Segment::new("node") + .set_value("⬢ v12.0.0") + .set_style(Color::Green.bold()) + ); + let actual = common::render_module("nodejs", &dir.path()); assert_eq!(expected, actual); Ok(()) @@ -45,11 +49,13 @@ fn folder_with_node_modules() -> io::Result<()> { let node_modules = dir.path().join("node_modules"); fs::create_dir_all(&node_modules)?; - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green.bold()) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); + let expected = format!( + "via {} ", + Segment::new("node") + .set_value("⬢ v12.0.0") + .set_style(Color::Green.bold()) + ); + let actual = common::render_module("nodejs", &dir.path()); assert_eq!(expected, actual); Ok(()) |