From 70d0197e85ae4ef85202781f6d2dc9e76bd508b3 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 24 Dec 2025 08:02:12 +0000 Subject: feat(purgatory): add broken purgatory implementation --- grasp-audit/src/client.rs | 15 +++++-------- grasp-audit/src/fixtures.rs | 12 ++++++++-- .../src/specs/grasp01/push_authorization.rs | 26 +++++++++++----------- 3 files changed, 28 insertions(+), 25 deletions(-) (limited to 'grasp-audit/src') diff --git a/grasp-audit/src/client.rs b/grasp-audit/src/client.rs index 5995483..b9aaba3 100644 --- a/grasp-audit/src/client.rs +++ b/grasp-audit/src/client.rs @@ -200,16 +200,11 @@ impl AuditClient { // Wait a bit for event to propagate tokio::time::sleep(Duration::from_millis(300)).await; - // ------------------------------------------------------ - // TODO Magically enable purgatory by uncommenting this: - // ------------------------------------------------------ - // ------------------------------------------------------ - // if !self.is_event_on_relay(event.id).await? { - // return Err(anyhow!( - // "event sent to relay was served instead of being put in purgatory" - // )); - // } - // ------------------------------------------------------ + if !self.is_event_on_relay(event.id).await? { + return Err(anyhow!( + "event sent to relay was served instead of being put in purgatory" + )); + } Ok(event_id) } diff --git a/grasp-audit/src/fixtures.rs b/grasp-audit/src/fixtures.rs index dca204b..30df6e3 100644 --- a/grasp-audit/src/fixtures.rs +++ b/grasp-audit/src/fixtures.rs @@ -1172,7 +1172,11 @@ impl<'a> TestContext<'a> { tokio::time::sleep(Duration::from_millis(200)).await; - if !self.client.is_event_on_relay(maintainer_state_event.id).await? { + if !self + .client + .is_event_on_relay(maintainer_state_event.id) + .await? + { return Err(anyhow::anyhow!("state event not released from purgatory")); } @@ -1345,7 +1349,11 @@ impl<'a> TestContext<'a> { tokio::time::sleep(Duration::from_millis(200)).await; - if !self.client.is_event_on_relay(recursive_maintainer_state_event.id).await? { + if !self + .client + .is_event_on_relay(recursive_maintainer_state_event.id) + .await? + { return Err(anyhow::anyhow!("state event not released from purgatory")); } diff --git a/grasp-audit/src/specs/grasp01/push_authorization.rs b/grasp-audit/src/specs/grasp01/push_authorization.rs index e076bee..ed69d6d 100644 --- a/grasp-audit/src/specs/grasp01/push_authorization.rs +++ b/grasp-audit/src/specs/grasp01/push_authorization.rs @@ -1355,19 +1355,19 @@ impl PushAuthorizationTests { } // TODO - uncomment this when purgatory feature added - // // Check event is not yet served by relay (still in purgatory) - // match client.is_event_on_relay(pr_event.id).await { - // Ok(on_relay) => { - // if !on_relay { - // return TestResult::new(test_name, "GRASP-01:git-http:40", desc) - // .fail("PR event not in purgatory before correct commit pushed to refs/nostr/ (the relay serve the PR event)"); - // } - // } - // Err(_) => { - // return TestResult::new(test_name, "GRASP-01:git-http:40", desc) - // .fail("failed to query relay"); - // } - // } + // Check event is not yet served by relay (still in purgatory) + match client.is_event_on_relay(pr_event.id).await { + Ok(on_relay) => { + if !on_relay { + return TestResult::new(test_name, "GRASP-01:git-http:40", desc) + .fail("PR event not in purgatory before correct commit pushed to refs/nostr/ (the relay serve the PR event)"); + } + } + Err(_) => { + return TestResult::new(test_name, "GRASP-01:git-http:40", desc) + .fail("failed to query relay"); + } + } // Push correct commit (should succeed) let push_succeeded = match push_to_pr_ref(&clone_path, &pr_event_id) { -- cgit v1.2.3