diff options
author | Neil Kistner <neil.kistner@gmail.com> | 2019-09-04 23:09:51 -0500 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-09-05 00:09:51 -0400 |
commit | 1c66869117e140d7b585ee6c9e66a32201b4837b (patch) | |
tree | aeff1f5a90f40575adc4a794bbb93358f5b61e22 /tests/testsuite/git_status.rs | |
parent | c5e693b638c3f6c5751662c27a5790c5f468aa8a (diff) |
feat: Add config for ahead/behind count of tracked branch (#281)
Add a configuration option (show_sync_count) to the git_status module that will show/hide the counts ahead/behind of the tracked branch. Currently have this default to false, and would opt-in to show this information.
Diffstat (limited to 'tests/testsuite/git_status.rs')
-rw-r--r-- | tests/testsuite/git_status.rs | 102 |
1 files changed, 99 insertions, 3 deletions
diff --git a/tests/testsuite/git_status.rs b/tests/testsuite/git_status.rs index 00866247b..4b75d0a05 100644 --- a/tests/testsuite/git_status.rs +++ b/tests/testsuite/git_status.rs @@ -5,11 +5,11 @@ use std::fs::{self, File}; use std::io; use std::process::Command; -use crate::common; +use crate::common::{self, TestCommand}; #[test] #[ignore] -fn shows_behind_count() -> io::Result<()> { +fn shows_behind() -> io::Result<()> { let fixture_repo_dir = common::create_fixture_repo()?; let repo_dir = common::new_tempdir()?.path().join("rocket"); @@ -25,6 +25,35 @@ fn shows_behind_count() -> io::Result<()> { .arg(repo_dir) .output()?; let actual = String::from_utf8(output.stdout).unwrap(); + let expected = Color::Red.bold().paint(format!("[{}] ", "⇣")).to_string(); + + assert_eq!(expected, actual); + + Ok(()) +} + +#[test] +#[ignore] +fn shows_behind_with_count() -> io::Result<()> { + let fixture_repo_dir = common::create_fixture_repo()?; + let repo_dir = common::new_tempdir()?.path().join("rocket"); + + Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); + + Command::new("git") + .args(&["reset", "--hard", "HEAD^"]) + .current_dir(repo_dir.as_path()) + .output()?; + + let output = common::render_module("git_status") + .use_config(toml::toml! { + [git_status] + show_sync_count = true + }) + .arg("--path") + .arg(repo_dir) + .output()?; + let actual = String::from_utf8(output.stdout).unwrap(); let expected = Color::Red .bold() .paint(format!("[{}] ", "⇣1")) @@ -37,7 +66,34 @@ fn shows_behind_count() -> io::Result<()> { #[test] #[ignore] -fn shows_ahead_count() -> io::Result<()> { +fn shows_ahead() -> io::Result<()> { + let fixture_repo_dir = common::create_fixture_repo()?; + let repo_dir = common::new_tempdir()?.path().join("rocket"); + + Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); + + File::create(repo_dir.join("readme.md"))?; + + Command::new("git") + .args(&["commit", "-am", "Update readme"]) + .current_dir(&repo_dir) + .output()?; + + let output = common::render_module("git_status") + .arg("--path") + .arg(repo_dir) + .output()?; + let actual = String::from_utf8(output.stdout).unwrap(); + let expected = Color::Red.bold().paint(format!("[{}] ", "⇡")).to_string(); + + assert_eq!(expected, actual); + + Ok(()) +} + +#[test] +#[ignore] +fn shows_ahead_with_count() -> io::Result<()> { let fixture_repo_dir = common::create_fixture_repo()?; let repo_dir = common::new_tempdir()?.path().join("rocket"); @@ -51,6 +107,10 @@ fn shows_ahead_count() -> io::Result<()> { .output()?; let output = common::render_module("git_status") + .use_config(toml::toml! { + [git_status] + show_sync_count = true + }) .arg("--path") .arg(repo_dir) .output()?; @@ -90,6 +150,42 @@ fn shows_diverged() -> io::Result<()> { .arg(repo_dir) .output()?; let actual = String::from_utf8(output.stdout).unwrap(); + let expected = Color::Red.bold().paint(format!("[{}] ", "⇕")).to_string(); + + assert_eq!(expected, actual); + + Ok(()) +} + +#[test] +#[ignore] +fn shows_diverged_with_count() -> io::Result<()> { + let fixture_repo_dir = common::create_fixture_repo()?; + let repo_dir = common::new_tempdir()?.path().join("rocket"); + + Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); + + Command::new("git") + .args(&["reset", "--hard", "HEAD^"]) + .current_dir(repo_dir.as_path()) + .output()?; + + fs::write(repo_dir.join("Cargo.toml"), " ")?; + + Command::new("git") + .args(&["commit", "-am", "Update readme"]) + .current_dir(repo_dir.as_path()) + .output()?; + + let output = common::render_module("git_status") + .use_config(toml::toml! { + [git_status] + show_sync_count = true + }) + .arg("--path") + .arg(repo_dir) + .output()?; + let actual = String::from_utf8(output.stdout).unwrap(); let expected = Color::Red .bold() .paint(format!("[{}] ", "⇕⇡1⇣1")) |