upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/grasp-audit/src/bin/grasp-audit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'grasp-audit/src/bin/grasp-audit.rs')
-rw-r--r--grasp-audit/src/bin/grasp-audit.rs55
1 files changed, 30 insertions, 25 deletions
diff --git a/grasp-audit/src/bin/grasp-audit.rs b/grasp-audit/src/bin/grasp-audit.rs
index b3fa0db..d192f04 100644
--- a/grasp-audit/src/bin/grasp-audit.rs
+++ b/grasp-audit/src/bin/grasp-audit.rs
@@ -144,51 +144,56 @@ async fn main() -> Result<()> {
144 println!("Running all tests...\n"); 144 println!("Running all tests...\n");
145 let mut all_results = AuditResult::new("All GRASP-01 Tests"); 145 let mut all_results = AuditResult::new("All GRASP-01 Tests");
146 146
147 // Repository creation tests 147 // NIP-01 smoke tests (stateless - no shared fixture dependencies)
148 println!(" → NIP-01 smoke tests...");
149 let nip01_results = specs::Nip01SmokeTests::run_all(&client).await;
150 all_results.merge(nip01_results);
151
152 // NIP-11 document tests (stateless)
153 println!(" → NIP-11 document tests...");
154 let nip11_results = specs::Nip11DocumentTests::run_all(&client).await;
155 all_results.merge(nip11_results);
156
157 // CORS tests (stateless HTTP checks)
158 println!(" → CORS tests...");
159 let cors_results = specs::CorsTests::run_all(&client, &relay_domain).await;
160 all_results.merge(cors_results);
161
162 // Repository creation tests (uses ValidRepoSent only - no state events)
148 println!(" → Repository creation tests..."); 163 println!(" → Repository creation tests...");
149 let repo_results = specs::RepositoryCreationTests::run_all(&client, &relay_domain).await; 164 let repo_results = specs::RepositoryCreationTests::run_all(&client, &relay_domain).await;
150 all_results.merge(repo_results); 165 all_results.merge(repo_results);
151 166
152 // Git clone tests 167 // Git clone tests (uses ValidRepoSent only - no state events)
153 println!(" → Git clone tests..."); 168 println!(" → Git clone tests...");
154 let clone_results = specs::GitCloneTests::run_all(&client, &relay_domain).await; 169 let clone_results = specs::GitCloneTests::run_all(&client, &relay_domain).await;
155 all_results.merge(clone_results); 170 all_results.merge(clone_results);
156 171
157 // Git filter capability tests 172 // Git filter capability tests (uses ValidRepoSent only - no state events)
158 println!(" → Git filter capability tests..."); 173 println!(" → Git filter capability tests...");
159 let filter_results = specs::GitFilterTests::run_all(&client, &relay_domain).await; 174 let filter_results = specs::GitFilterTests::run_all(&client, &relay_domain).await;
160 all_results.merge(filter_results); 175 all_results.merge(filter_results);
161 176
162 // Push authorization tests 177 // Event acceptance policy tests (uses ValidRepoServed - no extra state events)
163 println!(" → Push authorization tests...");
164 let push_results = specs::PushAuthorizationTests::run_all(&client, &relay_domain).await;
165 all_results.merge(push_results);
166
167 // Event acceptance policy tests
168 println!(" → Event acceptance policy tests..."); 178 println!(" → Event acceptance policy tests...");
169 let event_results = specs::EventAcceptancePolicyTests::run_all(&client).await; 179 let event_results = specs::EventAcceptancePolicyTests::run_all(&client).await;
170 all_results.merge(event_results); 180 all_results.merge(event_results);
171 181
172 // NIP-01 smoke tests 182 // Purgatory tests MUST run before push-auth.
173 println!(" → NIP-01 smoke tests..."); 183 // Push-auth sends new replaceable state events (kind 30618) for the same
174 let nip01_results = specs::Nip01SmokeTests::run_all(&client).await; 184 // repo_id as OwnerStateDataPushed (e.g. test_head_set_after_git_push_with_required_oids
175 all_results.merge(nip01_results); 185 // sends a develop1 state event that displaces the original). If purgatory ran
176 186 // after push-auth, is_event_on_relay(original_id) would return false because
177 // NIP-11 document tests 187 // the original state event has been replaced on the relay.
178 println!(" → NIP-11 document tests...");
179 let nip11_results = specs::Nip11DocumentTests::run_all(&client).await;
180 all_results.merge(nip11_results);
181
182 // CORS tests
183 println!(" → CORS tests...");
184 let cors_results = specs::CorsTests::run_all(&client, &relay_domain).await;
185 all_results.merge(cors_results);
186
187 // Purgatory tests
188 println!(" → Purgatory tests..."); 188 println!(" → Purgatory tests...");
189 let purgatory_results = specs::PurgatoryTests::run_all(&client).await; 189 let purgatory_results = specs::PurgatoryTests::run_all(&client).await;
190 all_results.merge(purgatory_results); 190 all_results.merge(purgatory_results);
191 191
192 // Push authorization tests (mutates shared state - must run last among git specs)
193 println!(" → Push authorization tests...");
194 let push_results = specs::PushAuthorizationTests::run_all(&client, &relay_domain).await;
195 all_results.merge(push_results);
196
192 println!(); 197 println!();
193 all_results 198 all_results
194 } 199 }