test: set name and email for repository fixture

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.
This commit is contained in:
Fintan Halpenny 2025-05-09 07:57:09 +01:00
parent 59a1021410
commit f5fa84fac6
1 changed files with 9 additions and 6 deletions

View File

@ -81,12 +81,15 @@ pub fn project<P: AsRef<Path>, G: Signer>(
/// Creates a regular repository at the given path with a couple of commits.
pub fn repository<P: AsRef<Path>>(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 = {