diff options
Diffstat (limited to 'grasp-audit/src/client.rs')
| -rw-r--r-- | grasp-audit/src/client.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/grasp-audit/src/client.rs b/grasp-audit/src/client.rs index 4f3401c..ed76a34 100644 --- a/grasp-audit/src/client.rs +++ b/grasp-audit/src/client.rs | |||
| @@ -25,6 +25,8 @@ pub struct AuditClient { | |||
| 25 | maintainer_keys: Keys, | 25 | maintainer_keys: Keys, |
| 26 | /// Recursive maintainer keys for testing recursive authorization scenarios | 26 | /// Recursive maintainer keys for testing recursive authorization scenarios |
| 27 | recursive_maintainer_keys: Keys, | 27 | recursive_maintainer_keys: Keys, |
| 28 | /// PR author keys for testing PR event scenarios | ||
| 29 | pr_author_keys: Keys, | ||
| 28 | /// Fixture cache for TestContext instances - shared across all contexts using this client | 30 | /// Fixture cache for TestContext instances - shared across all contexts using this client |
| 29 | fixture_cache: FixtureCache, | 31 | fixture_cache: FixtureCache, |
| 30 | } | 32 | } |
| @@ -36,6 +38,7 @@ impl AuditClient { | |||
| 36 | let keys = Keys::generate(); | 38 | let keys = Keys::generate(); |
| 37 | let maintainer_keys = Keys::generate(); | 39 | let maintainer_keys = Keys::generate(); |
| 38 | let recursive_maintainer_keys = Keys::generate(); | 40 | let recursive_maintainer_keys = Keys::generate(); |
| 41 | let pr_author_keys = Keys::generate(); | ||
| 39 | let client = Client::new(keys.clone()); | 42 | let client = Client::new(keys.clone()); |
| 40 | Self { | 43 | Self { |
| 41 | client, | 44 | client, |
| @@ -43,6 +46,7 @@ impl AuditClient { | |||
| 43 | keys, | 46 | keys, |
| 44 | maintainer_keys, | 47 | maintainer_keys, |
| 45 | recursive_maintainer_keys, | 48 | recursive_maintainer_keys, |
| 49 | pr_author_keys, | ||
| 46 | fixture_cache: Arc::new(Mutex::new(HashMap::new())), | 50 | fixture_cache: Arc::new(Mutex::new(HashMap::new())), |
| 47 | } | 51 | } |
| 48 | } | 52 | } |
| @@ -52,6 +56,7 @@ impl AuditClient { | |||
| 52 | let keys = Keys::generate(); | 56 | let keys = Keys::generate(); |
| 53 | let maintainer_keys = Keys::generate(); | 57 | let maintainer_keys = Keys::generate(); |
| 54 | let recursive_maintainer_keys = Keys::generate(); | 58 | let recursive_maintainer_keys = Keys::generate(); |
| 59 | let pr_author_keys = Keys::generate(); | ||
| 55 | let client = Client::new(keys.clone()); | 60 | let client = Client::new(keys.clone()); |
| 56 | 61 | ||
| 57 | // Add relay and connect | 62 | // Add relay and connect |
| @@ -102,6 +107,7 @@ impl AuditClient { | |||
| 102 | keys, | 107 | keys, |
| 103 | maintainer_keys, | 108 | maintainer_keys, |
| 104 | recursive_maintainer_keys, | 109 | recursive_maintainer_keys, |
| 110 | pr_author_keys, | ||
| 105 | fixture_cache: Arc::new(Mutex::new(HashMap::new())), | 111 | fixture_cache: Arc::new(Mutex::new(HashMap::new())), |
| 106 | }) | 112 | }) |
| 107 | } | 113 | } |
| @@ -278,6 +284,16 @@ impl AuditClient { | |||
| 278 | self.recursive_maintainer_keys.public_key().to_hex() | 284 | self.recursive_maintainer_keys.public_key().to_hex() |
| 279 | } | 285 | } |
| 280 | 286 | ||
| 287 | /// Get the PR author keys (for PR event testing) | ||
| 288 | pub fn pr_author_keys(&self) -> &Keys { | ||
| 289 | &self.pr_author_keys | ||
| 290 | } | ||
| 291 | |||
| 292 | /// Get the PR author public key as a hex string | ||
| 293 | pub fn pr_author_pubkey_hex(&self) -> String { | ||
| 294 | self.pr_author_keys.public_key().to_hex() | ||
| 295 | } | ||
| 296 | |||
| 281 | /// Create a NIP-34 repository announcement event with full customization | 297 | /// Create a NIP-34 repository announcement event with full customization |
| 282 | /// | 298 | /// |
| 283 | /// This is the core method for creating repository announcements. It allows | 299 | /// This is the core method for creating repository announcements. It allows |