fix(tickets): normalise assignedAgentIds/links/attachments manquants sur les payloads legacy
Les lignes de ticket persistées avant l'introduction de ces champs peuvent arriver sans assignedAgentIds (ni links/attachments), ce que TicketsPanel déréférence sans garde côté rendu : la fenêtre de liste rend quelques lignes puis devient noire dès qu'une ligne legacy est itérée. Les deux gateways (Tauri et HTTP/stream) normalisent désormais chaque ticket et chaque item de liste avant de les retourner à l'UI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@ -55,6 +55,26 @@ describe("TauriTicketGateway invoke payloads", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("normalizes legacy ticket list rows that omit assignedAgentIds", async () => {
|
||||
invoke.mockResolvedValueOnce({
|
||||
items: [
|
||||
{
|
||||
ref: "#12",
|
||||
path: ".ideai/tickets/12/issue.md",
|
||||
title: "Legacy row",
|
||||
status: "open",
|
||||
priority: "medium",
|
||||
createdBy: { kind: "user" },
|
||||
updatedAt: 1,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const list = await new TauriTicketGateway().list("proj-1");
|
||||
|
||||
expect(list.items[0]?.assignedAgentIds).toEqual([]);
|
||||
});
|
||||
|
||||
it("wraps ticket attachment commands in the request DTO", async () => {
|
||||
const gateway = new TauriTicketGateway();
|
||||
|
||||
@ -97,4 +117,27 @@ describe("TauriTicketGateway invoke payloads", () => {
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
it("normalizes legacy ticket payloads that omit array fields", async () => {
|
||||
invoke.mockResolvedValueOnce({
|
||||
id: "issue-1",
|
||||
ref: "#12",
|
||||
number: 12,
|
||||
title: "Legacy",
|
||||
description: "",
|
||||
status: "open",
|
||||
priority: "medium",
|
||||
createdBy: { kind: "user" },
|
||||
updatedBy: { kind: "user" },
|
||||
createdAt: 1,
|
||||
updatedAt: 1,
|
||||
version: 1,
|
||||
});
|
||||
|
||||
const ticket = await new TauriTicketGateway().read("proj-1", "#12", true);
|
||||
|
||||
expect(ticket.links).toEqual([]);
|
||||
expect(ticket.assignedAgentIds).toEqual([]);
|
||||
expect(ticket.attachments).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user