Files
kandev/apps/web/components/task/chat-context-items.test.ts
T
José Almeida 8f2fe7a8e6 feat(web): add agent message comments (#1835)
* feat(web): add agent message comments

* fix(web): harden agent message comments

* fix(web): address message comment review findings

* fix(web): allow comments on legacy agent messages

* fix(web): address latest message comment review

* fix(web): address follow-up message comment review

* fix(web): address remaining message comment review

* fix(web): keep failed mobile comments open

* fix(web): preserve selections over message comments
2026-07-21 13:32:19 +01:00

57 lines
1.7 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
import { buildContextItems } from "./chat-context-items";
import type { AgentMessageComment } from "@/lib/state/slices/comments";
const comment: AgentMessageComment = {
id: "message-comment-1",
sessionId: "session-1",
source: "agent-message",
messageId: "reply-1",
selectedText: "selected answer",
anchor: {
messageId: "reply-1",
start: 0,
end: 15,
selectedText: "selected answer",
prefix: "",
suffix: " continues",
},
text: "Please clarify this.",
createdAt: "2026-07-20T00:00:00Z",
status: "pending",
};
describe("buildContextItems agent-message comments", () => {
it("creates one removable context item for pending message comments", () => {
const items = buildContextItems({
planContextEnabled: false,
contextFiles: [],
resolvedSessionId: "session-1",
removeContextFile: vi.fn(),
unpinFile: vi.fn(),
addPlan: vi.fn(),
promptsMap: new Map(),
pendingCommentsByFile: {},
handleRemoveCommentFile: vi.fn(),
handleRemoveComment: vi.fn(),
planComments: [],
handleClearPlanComments: vi.fn(),
pendingPRFeedback: [],
handleRemovePRFeedback: vi.fn(),
handleClearPRFeedback: vi.fn(),
walkthroughComments: [],
handleRemoveWalkthroughComment: vi.fn(),
handleClearWalkthroughComments: vi.fn(),
messageComments: [comment],
handleClearMessageComments: vi.fn(),
taskId: "task-1",
} as never);
const item = items.find((candidate) => candidate.kind === "agent-message-comment");
expect(item).toMatchObject({
kind: "agent-message-comment",
label: "1 message comment",
});
});
});