node/test: `NodeHandle::commit_to` should namespace

The `commit_to` method should namespace the reference, so that node is
only ever committing the namespace of that particular node.

This prevents the node from committing to another node's namespace or
the canonical namespace.
This commit is contained in:
Fintan Halpenny 2026-05-05 11:47:21 +01:00
parent 8724ebe780
commit e87af868db
1 changed files with 8 additions and 3 deletions

View File

@ -365,8 +365,8 @@ impl<G: Signer<Signature> + cyphernet::Ecdh> NodeHandle<G> {
*issues.create(title, desc, &[], &[], []).unwrap().id() *issues.create(title, desc, &[], &[], []).unwrap().id()
} }
/// Perform a commit to `refname` by generating a blob of random data to a /// Perform a commit to `refname`, within the node's namespace, by
/// random path in a new tree. /// generating a blob of random data to a random path in a new tree.
/// ///
/// If the reference does not exist, a new one will be created with the new /// If the reference does not exist, a new one will be created with the new
/// commit as its target. /// commit as its target.
@ -378,7 +378,12 @@ impl<G: Signer<Signature> + cyphernet::Ecdh> NodeHandle<G> {
pub fn commit_to(&self, rid: RepoId, refname: impl AsRef<git::fmt::RefStr>) { pub fn commit_to(&self, rid: RepoId, refname: impl AsRef<git::fmt::RefStr>) {
use radicle::test::arbitrary; use radicle::test::arbitrary;
let refname = refname.as_ref(); let refname = match git::fmt::Qualified::from_refstr(refname.as_ref()) {
None => git::fmt::lit::refs_heads(refname).into(),
Some(refname) => refname,
};
let refname = refname.with_namespace(self.id.to_component());
let repo = self.storage.repository(rid).unwrap(); let repo = self.storage.repository(rid).unwrap();
let raw = &repo.backend; let raw = &repo.backend;