From f5fa84fac6736d2e31ec20c9b844ff12e6414d14 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Fri, 9 May 2025 07:57:09 +0100 Subject: [PATCH] test: set name and email for repository fixture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In fresh environments, without a global git config, the `user.name` and `user.email` will not be set for the fixture repository. This causes issues when tests are run and attempt to call `git2::Signature::now` – it will fail to read a user name and email for the commit. To remedy this, the name and email are set for the repository when initialising it. --- radicle/src/test/fixtures.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/radicle/src/test/fixtures.rs b/radicle/src/test/fixtures.rs index 7f41f0f3..fd768ad4 100644 --- a/radicle/src/test/fixtures.rs +++ b/radicle/src/test/fixtures.rs @@ -81,12 +81,15 @@ pub fn project, G: Signer>( /// Creates a regular repository at the given path with a couple of commits. pub fn repository>(path: P) -> (git2::Repository, git2::Oid) { let repo = git2::Repository::init(path).unwrap(); - let sig = git2::Signature::new( - "anonymous", - "anonymous@radicle.xyz", - &git2::Time::new(RADICLE_EPOCH, 0), - ) - .unwrap(); + let user_name = "anonymous"; + let user_email = "anonymous@radicle.xyz"; + { + let mut config = repo.config().unwrap(); + config.set_str("user.name", user_name).unwrap(); + config.set_str("user.email", user_email).unwrap(); + } + let sig = + git2::Signature::new(user_name, user_email, &git2::Time::new(RADICLE_EPOCH, 0)).unwrap(); let head = git::initial_commit(&repo, &sig).unwrap(); let tree = git::write_tree(Path::new("README"), "Hello World!\n".as_bytes(), &repo).unwrap(); let oid = {