fix(templates): mcpToolPermissions persisté via create/update_template — désérialisation par alias préférés (mcpToolPermissions > defaultMcpToolPermissions > defaultMcpToolPolicy) sur les DTO Create/UpdateTemplateRequestDto — #244 (QA verte)

This commit is contained in:
2026-08-24 11:46:14 +02:00
parent 592f248762
commit 69129a95ad
3 changed files with 135 additions and 23 deletions

View File

@ -255,6 +255,24 @@ fn create_template_request_deserialises_template_defaults() {
);
}
#[test]
fn create_template_request_deserialises_frontend_mcp_tool_permissions_key() {
let profile_id = Uuid::from_u128(22).to_string();
let raw = json!({
"name": "Backend Template",
"content": "# My context",
"defaultProfileId": profile_id,
"mcpToolPermissions": { "allowedTools": ["idea_ticket_read"] }
});
let dto: CreateTemplateRequestDto = serde_json::from_value(raw).unwrap();
assert_eq!(
dto.default_mcp_tool_policy,
Some(McpToolPolicy {
allowed_tools: vec!["idea_ticket_read".to_owned()]
})
);
}
#[test]
fn update_template_request_deserialises_camelcase() {
let template_id = Uuid::from_u128(30).to_string();
@ -291,6 +309,22 @@ fn update_template_request_deserialises_metadata_and_nullable_clears() {
assert_eq!(dto.default_mcp_tool_policy, Some(None));
}
#[test]
fn update_template_request_does_not_currently_deserialise_frontend_mcp_tool_permissions_key() {
let template_id = Uuid::from_u128(33).to_string();
let raw = json!({
"templateId": template_id,
"mcpToolPermissions": { "allowedTools": ["idea_ticket_read"] }
});
let dto: UpdateTemplateRequestDto = serde_json::from_value(raw).unwrap();
assert_eq!(
dto.default_mcp_tool_policy,
Some(Some(McpToolPolicy {
allowed_tools: vec!["idea_ticket_read".to_owned()]
}))
);
}
#[test]
fn create_agent_from_template_request_deserialises_camelcase() {
let project_id = Uuid::from_u128(40).to_string();