diff --git a/tests/testsuite/common.rs b/tests/testsuite/common.rs index 6698a1d9..60da0e26 100644 --- a/tests/testsuite/common.rs +++ b/tests/testsuite/common.rs @@ -48,16 +48,9 @@ pub fn new_tempdir() -> io::Result { /// Create a repo from the fixture to be used in git module tests pub fn create_fixture_repo() -> io::Result { let fixture_repo_dir = new_tempdir()?.path().join("fixture"); + let repo_dir = new_tempdir()?.path().join("rocket"); let fixture = env::current_dir()?.join("tests/fixtures/rocket.bundle"); - Command::new("git") - .args(&["config", "--global", "user.email", "starship@example.com"]) - .output()?; - - Command::new("git") - .args(&["config", "--global", "user.name", "starship"]) - .output()?; - Command::new("git") .args(&[ "clone", @@ -68,7 +61,19 @@ pub fn create_fixture_repo() -> io::Result { ]) .output()?; - Ok(fixture_repo_dir) + git2::Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); + + Command::new("git") + .args(&["config", "--local", "user.email", "starship@example.com"]) + .current_dir(repo_dir.as_path()) + .output()?; + + Command::new("git") + .args(&["config", "--local", "user.name", "starship"]) + .current_dir(repo_dir.as_path()) + .output()?; + + Ok(repo_dir) } /// Extends `std::process::Command` with methods for testing diff --git a/tests/testsuite/git_branch.rs b/tests/testsuite/git_branch.rs index d7f64850..ab1cc3c9 100644 --- a/tests/testsuite/git_branch.rs +++ b/tests/testsuite/git_branch.rs @@ -106,10 +106,8 @@ fn test_truncate_length_with_config( truncation_symbol: &str, config_options: &str, ) -> io::Result<()> { - let fixture_repo_dir = common::create_fixture_repo()?; - let repo_dir = common::new_tempdir()?.path().join("rocket"); + let repo_dir = common::create_fixture_repo()?; - Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); Command::new("git") .args(&["checkout", "-b", branch_name]) .current_dir(repo_dir.as_path()) diff --git a/tests/testsuite/git_status.rs b/tests/testsuite/git_status.rs index 4b75d0a0..e2be95c2 100644 --- a/tests/testsuite/git_status.rs +++ b/tests/testsuite/git_status.rs @@ -10,10 +10,7 @@ use crate::common::{self, TestCommand}; #[test] #[ignore] fn shows_behind() -> 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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["reset", "--hard", "HEAD^"]) @@ -35,10 +32,7 @@ fn shows_behind() -> io::Result<()> { #[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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["reset", "--hard", "HEAD^"]) @@ -67,10 +61,7 @@ fn shows_behind_with_count() -> io::Result<()> { #[test] #[ignore] 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("readme.md"))?; @@ -94,10 +85,7 @@ fn shows_ahead() -> io::Result<()> { #[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"); - - Repository::clone(fixture_repo_dir.to_str().unwrap(), &repo_dir.as_path()).unwrap(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("readme.md"))?; @@ -128,10 +116,7 @@ fn shows_ahead_with_count() -> io::Result<()> { #[test] #[ignore] fn shows_diverged() -> 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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["reset", "--hard", "HEAD^"]) @@ -160,10 +145,7 @@ fn shows_diverged() -> io::Result<()> { #[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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["reset", "--hard", "HEAD^"]) @@ -199,10 +181,7 @@ fn shows_diverged_with_count() -> io::Result<()> { #[test] #[ignore] fn shows_conflicted() -> 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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["reset", "--hard", "HEAD^"]) @@ -241,10 +220,7 @@ fn shows_conflicted() -> io::Result<()> { #[test] #[ignore] fn shows_untracked_file() -> 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("license"))?; @@ -263,10 +239,7 @@ fn shows_untracked_file() -> io::Result<()> { #[test] #[ignore] fn doesnt_show_untracked_file_if_disabled() -> 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("license"))?; @@ -290,10 +263,7 @@ fn doesnt_show_untracked_file_if_disabled() -> io::Result<()> { #[test] #[ignore] fn shows_stashed() -> 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("readme.md"))?; @@ -317,10 +287,7 @@ fn shows_stashed() -> io::Result<()> { #[test] #[ignore] fn shows_modified() -> 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("readme.md"))?; @@ -339,10 +306,7 @@ fn shows_modified() -> io::Result<()> { #[test] #[ignore] fn shows_staged_file() -> 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(); + let repo_dir = common::create_fixture_repo()?; File::create(repo_dir.join("license"))?; @@ -366,10 +330,7 @@ fn shows_staged_file() -> io::Result<()> { #[test] #[ignore] fn shows_renamed_file() -> 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(); + let repo_dir = common::create_fixture_repo()?; Command::new("git") .args(&["mv", "readme.md", "readme.md.bak"]) @@ -396,10 +357,7 @@ fn shows_renamed_file() -> io::Result<()> { #[test] #[ignore] fn shows_deleted_file() -> 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(); + let repo_dir = common::create_fixture_repo()?; fs::remove_file(repo_dir.join("readme.md"))?;