From 45ec219433beed991f779328f9a2915318e01d52 Mon Sep 17 00:00:00 2001 From: qwjyh Date: Tue, 4 Feb 2025 03:16:38 +0900 Subject: [PATCH] fix: polluting gitconfig in integrated test --- tests/cli.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/cli.rs b/tests/cli.rs index 929a74e..33ab4b3 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -1,12 +1,12 @@ mod integrated_test { use std::{ - fs::{DirBuilder, File}, + fs::{self, DirBuilder, File}, io::{self, BufWriter, Write}, + ops::Not, }; use anyhow::{Context, Ok, Result}; use assert_cmd::{assert::OutputAssertExt, Command}; - use dirs::home_dir; use git2::Repository; use log::trace; use predicates::{boolean::PredicateBooleanExt, prelude::predicate}; @@ -16,12 +16,12 @@ mod integrated_test { /// # Errors /// /// This function will return an error if it failed to get home directory. - fn setup_gitconfig() -> Result<()> { - let f = match File::create_new( - home_dir() - .context("Failed to find home directory")? - .join(".gitconfig"), - ) { + fn setup_gitconfig(path: &std::path::Path) -> Result<()> { + let git_dir = path.join(".git"); + if !git_dir.exists() { + fs::DirBuilder::new().create(git_dir.clone())? + } + let f = match File::create_new(git_dir.join("config")) { io::Result::Ok(f) => f, io::Result::Err(_err) => return Ok(()), }; @@ -41,7 +41,7 @@ mod integrated_test { #[test] fn single_device() -> Result<()> { let config_dir = assert_fs::TempDir::new()?; - setup_gitconfig()?; + setup_gitconfig(&config_dir)?; // init let mut cmd = Command::cargo_bin("xdbm")?; cmd.arg("-c") @@ -135,7 +135,7 @@ mod integrated_test { fn two_devices_with_same_name() -> Result<()> { // 1st device let config_dir_1 = assert_fs::TempDir::new()?; - setup_gitconfig()?; + setup_gitconfig(&config_dir_1)?; let mut cmd1 = Command::cargo_bin("xdbm")?; cmd1.arg("-c") .arg(config_dir_1.path()) @@ -168,7 +168,7 @@ mod integrated_test { // 2nd device let config_dir_2 = assert_fs::TempDir::new()?; - setup_gitconfig()?; + setup_gitconfig(&config_dir_2)?; let mut cmd2 = Command::cargo_bin("xdbm")?; cmd2.arg("-c") .arg(config_dir_2.path()) @@ -184,7 +184,7 @@ mod integrated_test { fn directory_without_parent() -> Result<()> { // 1st device let config_dir_1 = assert_fs::TempDir::new()?; - setup_gitconfig()?; + setup_gitconfig(&config_dir_1)?; let mut cmd1 = Command::cargo_bin("xdbm")?; cmd1.arg("-c") .arg(config_dir_1.path()) @@ -219,7 +219,7 @@ mod integrated_test { // // devices: first let config_dir_1 = assert_fs::TempDir::new()?; - setup_gitconfig()?; + setup_gitconfig(&config_dir_1)?; let mut cmd1 = Command::cargo_bin("xdbm")?; cmd1.arg("-c") .arg(config_dir_1.path())