diff options
author | Lars Wirzenius <liw@liw.fi> | 2024-02-02 17:32:21 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2024-02-02 17:39:46 +0200 |
commit | 13e2c2488e2ccbdcfefd46d76ad6fc42040184c1 (patch) | |
tree | d3935f9c925306c4dfe6966eaa59cf1421c62f0d | |
parent | c468331c10aee5b848230c38799a88685bf1936d (diff) | |
download | radicle-ci-broker-13e2c2488e2ccbdcfefd46d76ad6fc42040184c1.tar.gz |
tests(src/msg.rs): use test helpers from test.rs
This simplifies the test code somewhat.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
-rw-r--r-- | src/msg.rs | 118 |
1 files changed, 54 insertions, 64 deletions
@@ -593,45 +593,35 @@ pub enum MessageError { } #[cfg(test)] -mod tests { +pub mod tests { use crate::event::BrokerEvent; use crate::msg::Request; - use radicle::crypto::ssh::Keystore; - use radicle::crypto::test::signer::MockSigner; - use radicle::crypto::Signer; use radicle::git::raw::Oid; use radicle::git::RefString; use radicle::patch::{MergeTarget, Patches}; use radicle::prelude::Did; - use radicle::profile::{Config, Home}; use radicle::storage::ReadRepository; - use radicle::test::setup::Node; - use radicle::Profile; + + use crate::test::{MockNode, TestResult}; #[test] - fn trigger_push() { - let root = tempfile::tempdir().unwrap(); - let ms = MockSigner::default(); - let alias = "broker_test_alias"; - let node = Node::new(root, ms, alias); - let prj = node.project(); - let repo_head = prj.repo.head().unwrap().1; - let cmt = - radicle::test::fixtures::commit("my test commit", &[repo_head.into()], &prj.backend); - let profile = Profile { - home: Home::new(node.root.clone()).unwrap(), - storage: node.storage, - keystore: Keystore::new(&node.root), - public_key: node.signer.public_key().to_owned(), - config: Config::new(alias.parse().unwrap()), - }; + fn trigger_push() -> TestResult<()> { + let mock_node = MockNode::new()?; + let profile = mock_node.profile()?; + + let project = mock_node.node().project(); + let (_, repo_head) = project.repo.head()?; + let cmt = radicle::test::fixtures::commit( + "my test commit", + &[repo_head.into()], + &project.backend, + ); let be = BrokerEvent::RefChanged { - rid: prj.id, + rid: project.id, name: RefString::try_from( "refs/namespaces/$nid/refs/heads/master".replace("$nid", &profile.id().to_string()), - ) - .unwrap(), + )?, oid: cmt, old: Some(repo_head), }; @@ -642,73 +632,71 @@ mod tests { push, patch, } = req; + assert!(patch.is_none()); assert!(push.is_some()); assert_eq!(common.event_type, "push"); - assert_eq!(common.repository.id, prj.id); - assert_eq!(common.repository.name, prj.repo.project().unwrap().name()); + assert_eq!(common.repository.id, project.id); + assert_eq!(common.repository.name, project.repo.project()?.name()); let push = push.unwrap(); assert_eq!(push.after, cmt); assert_eq!(push.before, repo_head); assert_eq!(push.commits, vec![cmt]); assert_eq!(push.pusher.id, Did::from(profile.id())); + + Ok(()) } #[test] - fn trigger_patch() { - let root = tempfile::tempdir().unwrap(); - let alias = "broker_test_alias"; - let node = Node::new(root, MockSigner::default(), alias); - let prj = node.project(); - let repo_head = prj.repo.head().unwrap().1; - let cmt = - radicle::test::fixtures::commit("my test commit", &[repo_head.into()], &prj.backend); - - let mut patches = Patches::open(&prj.repo).unwrap(); - let patch_cob = patches - .create( - "my patch title", - "my patch description", - MergeTarget::Delegates, - repo_head, - cmt, - &[], - &node.signer, - ) - .unwrap(); - - let profile = Profile { - home: Home::new(node.root.clone()).unwrap(), - storage: node.storage, - keystore: Keystore::new(&node.root), - public_key: node.signer.public_key().to_owned(), - config: Config::new(alias.parse().unwrap()), - }; + fn trigger_patch() -> TestResult<()> { + let mock_node = MockNode::new()?; + let profile = mock_node.profile()?; + + let project = mock_node.node().project(); + let (_, repo_head) = project.repo.head()?; + let cmt = radicle::test::fixtures::commit( + "my test commit", + &[repo_head.into()], + &project.backend, + ); + + let node = mock_node.node(); + + let mut patches = Patches::open(&project.repo)?; + let patch_cob = patches.create( + "my patch title", + "my patch description", + MergeTarget::Delegates, + repo_head, + cmt, + &[], + &node.signer, + )?; let be = BrokerEvent::RefChanged { - rid: prj.id, + rid: project.id, name: RefString::try_from( "refs/namespaces/$nid/refs/cobs/xyz.radicle.patch/$patchId" .replace("$nid", &profile.id().to_string()) .replace("$patchId", &patch_cob.id.to_string()), - ) - .unwrap(), - oid: radicle_git_ext::Oid::from(Oid::from_str(&patch_cob.id.to_string()).unwrap()), + )?, + oid: radicle_git_ext::Oid::from(Oid::from_str(&patch_cob.id.to_string())?), old: None, }; - let req = Request::trigger(&profile, &be).expect("expect request trigger"); + let req = Request::trigger(&profile, &be)?; let Request::Trigger { common, push, patch, } = req; + assert!(patch.is_some()); assert!(push.is_none()); assert_eq!(common.event_type, "patch"); - assert_eq!(common.repository.id, prj.id); - assert_eq!(common.repository.name, prj.repo.project().unwrap().name()); + assert_eq!(common.repository.id, project.id); + assert_eq!(common.repository.name, project.repo.project()?.name()); let patch = patch.unwrap(); assert_eq!(patch.action, "created"); @@ -727,5 +715,7 @@ mod tests { assert_eq!(patch.patch.after, cmt); assert_eq!(patch.patch.before, repo_head); assert_eq!(patch.patch.commits, vec![cmt]); + + Ok(()) } } |