From 5148479d76f0958e4a1989a6225a4690292b428f Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 12 Jan 2026 14:09:26 +0000 Subject: feat(grasp-audit): add filter capability compliance tests Add comprehensive GRASP-01 compliance tests for uploadpack.allowFilter capability to the grasp-audit test suite. These tests can be run against ANY GRASP implementation (ngit-relay, ngit-grasp, or others) to verify filter support. New test module: grasp-audit/src/specs/grasp01/git_filter.rs Tests added: - test_filter_capability_advertised: Verifies filter appears in info/refs - test_filtered_clone_succeeds: Tests git clone --filter=blob:none - test_filtered_fetch_succeeds: Tests git fetch --filter=tree:0 Usage: cd grasp-audit && nix develop -c bash test-ngit-relay.sh --mode test cd grasp-audit && nix develop -c cargo run -- audit -r ws://localhost:8080 -s git-filter --- grasp-audit/src/specs/grasp01/mod.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'grasp-audit/src/specs/grasp01/mod.rs') diff --git a/grasp-audit/src/specs/grasp01/mod.rs b/grasp-audit/src/specs/grasp01/mod.rs index fa05f35..0a819ee 100644 --- a/grasp-audit/src/specs/grasp01/mod.rs +++ b/grasp-audit/src/specs/grasp01/mod.rs @@ -9,12 +9,14 @@ //! - [`EventAcceptancePolicyTests`] - Event acceptance rules (WebSocket-only) //! - [`CorsTests`] - CORS headers on Git HTTP endpoints (requires git-data-dir) //! - [`GitCloneTests`] - Git clone operations (requires git-data-dir) +//! - [`GitFilterTests`] - Git filter capability for partial clone (requires git-data-dir) //! - [`PushAuthorizationTests`] - Push authorization (requires git-data-dir) //! - [`RepositoryCreationTests`] - Repository creation (requires git-data-dir) pub mod cors; pub mod event_acceptance_policy; pub mod git_clone; +pub mod git_filter; pub mod nip01_smoke; pub mod nip11_document; pub mod push_authorization; @@ -24,6 +26,7 @@ pub mod spec_requirements; pub use cors::CorsTests; pub use event_acceptance_policy::EventAcceptancePolicyTests; pub use git_clone::GitCloneTests; +pub use git_filter::GitFilterTests; pub use nip01_smoke::Nip01SmokeTests; pub use nip11_document::Nip11DocumentTests; pub use push_authorization::PushAuthorizationTests; -- cgit v1.2.3