fix: preserve backend product authority boundaries

This commit is contained in:
2026-08-22 20:03:27 +09:00
parent 779ced82b1
commit 9dc6d8f144
3 changed files with 99 additions and 18 deletions
+38 -2
View File
@@ -173,7 +173,7 @@ impl BackendWorkspaceProductClient {
}
self.send_json(
Method::POST,
"/tickets/relations/search",
"/ticket-relations/query",
Some(&Query { ticket, kind }),
)
}
@@ -568,7 +568,7 @@ impl TicketBackend for BackendWorkspaceProductClient {
}
self.send_json(
Method::POST,
"/tickets/orchestration-plans/search",
"/ticket-orchestration-plans/query",
Some(&Query { ticket, kind }),
)
.map_err(ticket_client_error)
@@ -731,6 +731,42 @@ mod tests {
handle.join().unwrap();
}
#[test]
fn ticket_relation_query_uses_workspace_scoped_backend_route() {
let (base_url, request, handle) = one_response_server("200 OK", "[]");
let client = BackendWorkspaceProductClient::new(base_url, "workspace-a").unwrap();
let relations = client
.query_ticket_relations(
Some(&TicketIdOrSlug::Query("T-1".to_string())),
Some(TicketRelationKind::Related),
)
.unwrap();
assert!(relations.is_empty());
let request = request.recv().unwrap();
assert!(request.starts_with("POST /api/w/workspace-a/ticket-relations/query "));
assert!(request.contains("\"ticket\":{\"Query\":\"T-1\"}"));
handle.join().unwrap();
}
#[test]
fn orchestration_plan_query_uses_workspace_scoped_backend_route() {
let (base_url, request, handle) = one_response_server("200 OK", "[]");
let client = BackendWorkspaceProductClient::new(base_url, "workspace-a").unwrap();
let records = TicketBackend::query_orchestration_plan_records(&client, None, None).unwrap();
assert!(records.is_empty());
assert!(
request
.recv()
.unwrap()
.starts_with("POST /api/w/workspace-a/ticket-orchestration-plans/query ")
);
handle.join().unwrap();
}
#[test]
fn ticket_intake_launch_uses_backend_options_and_workspace_worker_route() {
let (base_url, requests, handle) = response_sequence_server(vec![