Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
node/test: Use `Arbitrary` for `SignedRefs`
Fintan Halpenny committed 1 month ago
commit 39a58ded05d378aa944a4cb44368d1ea0baf7280
parent f7ff4d8
2 files changed +15 -22
modified crates/radicle-node/src/test/peer.rs
@@ -8,6 +8,7 @@ use std::str::FromStr;
use log::*;

use radicle::crypto;
+
use radicle::git::Oid;
use radicle::identity::Visibility;
use radicle::node::address::Store as _;
use radicle::node::device::Device;
@@ -15,7 +16,8 @@ use radicle::node::Database;
use radicle::node::UserAgent;
use radicle::node::{address, Alias, ConnectOptions};
use radicle::rad;
-
use radicle::storage::refs::{RefsAt, SignedRefsAt, IDENTITY_ROOT};
+
use radicle::storage::refs;
+
use radicle::storage::refs::{RefsAt, SignedRefsAt};
use radicle::storage::{ReadRepository, RemoteRepository};
use radicle::Storage;

@@ -360,17 +362,10 @@ where
        ann.into().signed(self.signer()).into()
    }

-
    pub fn signed_refs_at<R: ReadRepository>(
-
        &self,
-
        mut refs: Refs,
-
        at: radicle::git::Oid,
-
        repo: &R,
-
    ) -> SignedRefsAt {
-
        refs.insert(IDENTITY_ROOT.to_ref_string(), repo.identity_root().unwrap());
-
        SignedRefsAt {
-
            sigrefs: refs.signed(self.signer()).unwrap().verified(repo).unwrap(),
-
            at,
-
        }
+
    pub fn signed_refs_at(&self, root: Oid) -> SignedRefsAt {
+
        arbitrary::with_gen(8, |g| {
+
            refs::arbitrary::signed_refs_at(g, root, self.signer())
+
        })
    }

    pub fn connect_from(&mut self, peer: &Self) {
modified crates/radicle-node/src/tests.rs
@@ -8,6 +8,7 @@ use std::sync::Arc;
use std::sync::LazyLock;
use std::time;

+
use radicle::storage::ReadRepository;
use test_log::test;

use radicle::cob;
@@ -909,20 +910,19 @@ fn test_refs_announcement_followed() {

    let node_id = alice.id;
    let repo = alice.storage_mut().repo_mut(&rid);
+
    let root = repo.identity_root().unwrap();
+
    let sigrefs_at = bob.signed_refs_at(root);

-
    repo.remotes.insert(
-
        node_id,
-
        bob.signed_refs_at(arbitrary::gen::<Refs>(8), arbitrary::oid(), repo),
-
    );
+
    repo.remotes.insert(node_id, sigrefs_at);

    // Generate some refs for Bob under their own node_id.
-
    let sigrefs = bob.signed_refs_at(arbitrary::gen::<Refs>(8), arbitrary::oid(), repo);
+
    let sigrefs_at = bob.signed_refs_at(root);
    let node_id = bob.id;
    bob.init();
    bob.storage_mut()
        .repo_mut(&rid)
        .remotes
-
        .insert(node_id, sigrefs);
+
        .insert(node_id, sigrefs_at);

    // Alice uses Scope::Followed, and did not track Bob yet.
    alice.connect_to(&bob);
@@ -1582,10 +1582,8 @@ fn test_queued_fetch_from_ann_same_rid() {
    // Finish the 1st fetch.
    // Ensure the ref is in the storage and cache.
    let repo = alice.storage_mut().repo_mut(&rid);
-
    repo.remotes.insert(
-
        carol.id(),
-
        carol.signed_refs_at(arbitrary::gen::<Refs>(1), oid, repo),
-
    );
+
    let sigrefs_at = carol.signed_refs_at(repo.identity_root().unwrap());
+
    repo.remotes.insert(carol.id(), sigrefs_at);
    alice
        .database_mut()
        .refs_mut()