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:
@ -239,6 +239,46 @@ describe("TemplatesPanel (with MockTemplateGateway)", () => {
|
||||
expect(templates[0].contentMd).toBe("# Updated content");
|
||||
});
|
||||
|
||||
it("reopening an edited template preserves saved MCP tool permissions in the editor", async () => {
|
||||
const agent = new MockAgentGateway();
|
||||
const tmpl = new MockTemplateGateway(agent);
|
||||
await tmpl.createTemplate({
|
||||
name: "Permissioned",
|
||||
content: "# Initial",
|
||||
defaultProfileId: "",
|
||||
mcpToolPermissions: null,
|
||||
});
|
||||
renderTemplatesPanel({ agent, template: tmpl });
|
||||
|
||||
await screen.findByText("Permissioned");
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: "edit Permissioned" }));
|
||||
await waitFor(() => {
|
||||
expect(screen.getByLabelText("template MCP tool idea_ticket_read")).toBeTruthy();
|
||||
});
|
||||
|
||||
const checkbox = screen.getByLabelText(
|
||||
"template MCP tool idea_ticket_read",
|
||||
) as HTMLInputElement;
|
||||
expect(checkbox.checked).toBe(false);
|
||||
fireEvent.click(checkbox);
|
||||
expect(checkbox.checked).toBe(true);
|
||||
fireEvent.click(screen.getByRole("button", { name: "Save template" }));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.queryByLabelText("template editor")).toBeNull();
|
||||
});
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: "edit Permissioned" }));
|
||||
await waitFor(() => {
|
||||
expect(screen.getByLabelText("template MCP tool idea_ticket_read")).toBeTruthy();
|
||||
});
|
||||
|
||||
expect(
|
||||
(screen.getByLabelText("template MCP tool idea_ticket_read") as HTMLInputElement).checked,
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("deleting a template removes it from the list", async () => {
|
||||
renderTemplatesPanel();
|
||||
await createTemplate("ToDelete");
|
||||
|
||||
Reference in New Issue
Block a user