From 566125f5c04edc106ecaa1fa0b598e0b0d4c78d9 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Thu, 12 Sep 2024 10:37:46 +0100 Subject: [PATCH] fix(test): tests requiring .git pass when not present These are tests that assume they are running in a locally checked out git repository. If that isn't the case, e.g. when using jujutsu, then the tests should not fail. They will continue to run as normal under CI conditions as those do use a locally checked out git repository. --- crates/cli/src/server/tests.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/crates/cli/src/server/tests.rs b/crates/cli/src/server/tests.rs index 2060ade..ca176ca 100644 --- a/crates/cli/src/server/tests.rs +++ b/crates/cli/src/server/tests.rs @@ -62,7 +62,10 @@ fn repo_details_find_default_push_remote_finds_correct_remote() -> Result<()> { .with_token(ApiToken::new(Secret::new(String::new()))) .with_hostname(Hostname::new("git.kemitix.net")); repo_details.repo_path = RepoPath::new("kemitix/git-next".to_string()); - let open_repository = git::repository::factory::real().open(&repo_details)?; + let Ok(open_repository) = git::repository::factory::real().open(&repo_details) else { + // .git directory may not be present on dev environment + return Ok(()); + }; let_assert!( Some(found_git_remote) = open_repository.find_default_remote(Direction::Push), "Default Push Remote not found" @@ -95,10 +98,10 @@ fn gitdir_validate_should_pass_a_valid_git_repo() -> Result<()> { .with_token(ApiToken::new(Secret::new(String::new()))) .with_hostname(Hostname::new("git.kemitix.net")); tracing::debug!("opening..."); - let_assert!( - Ok(repository) = git::repository::factory::real().open(&repo_details), - "open repository" - ); + let Ok(repository) = git::repository::factory::real().open(&repo_details) else { + // .git directory may not be present on dev environment + return Ok(()); + }; tracing::debug!("open okay"); tracing::info!(?repository, "FOO"); tracing::info!(?repo_details, "BAR"); @@ -108,11 +111,13 @@ fn gitdir_validate_should_pass_a_valid_git_repo() -> Result<()> { } #[test] -fn gitdir_validate_should_fail_a_git_repo_with_wrong_remote() -> Result<()> { +fn gitdir_validate_should_fail_a_git_repo_with_wrong_remote() { let_assert!( Ok(cli_crate_dir) = std::env::current_dir().map_err(git::validation::remotes::Error::Io) ); + eprintln!("cli_crate_dir: {cli_crate_dir:?}"); let_assert!(Some(Some(root)) = cli_crate_dir.parent().map(|p| p.parent())); + eprintln!("root: {root:?}"); let mut repo_details = git::repo_details( 1, git::Generation::default(), @@ -126,14 +131,15 @@ fn gitdir_validate_should_fail_a_git_repo_with_wrong_remote() -> Result<()> { .with_user(User::new("git".to_string())) .with_token(ApiToken::new(Secret::new(String::new()))) .with_hostname(Hostname::new("git.kemitix.net")); - let repository = git::repository::factory::real().open(&repo_details)?; + let Ok(repository) = git::repository::factory::real().open(&repo_details) else { + // .git directory may not be present on dev environment + return; + }; let mut repo_details = repo_details.clone(); repo_details.forge = repo_details .forge .with_hostname(Hostname::new("code.kemitix.net")); let_assert!(Err(_) = validate_default_remotes(&*repository, &repo_details)); - - Ok(()) } #[test]