From 961b65b8bd62a5d5f42dd29973440dab3bdd3550 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 9 Jul 2026 11:08:50 +0200 Subject: [PATCH] test(vscode): cover shared transcript predicates --- packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts b/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts index 03b83d60f6..3c03421969 100644 --- a/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts +++ b/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts @@ -30,6 +30,7 @@ const ASSISTANT_MESSAGE_FILE = path.join( MONOREPO_ROOT, "packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx", ) +const TRANSCRIPT_PARTS_FILE = path.join(MONOREPO_ROOT, "packages/kilo-vscode/webview-ui/src/utils/transcript-parts.ts") const CHAT_LAYOUT_FILE = path.join(MONOREPO_ROOT, "packages/kilo-vscode/webview-ui/src/styles/chat-layout.css") function check(code: string): { ok: boolean; output: string } { @@ -303,9 +304,10 @@ describe("HighlightedText @mention regex fallback and click handler (source)", ( describe("AssistantMessage visible row contract (source)", () => { const src = fs.readFileSync(ASSISTANT_MESSAGE_FILE, "utf-8") + const parts = fs.readFileSync(TRANSCRIPT_PARTS_FILE, "utf-8") it("filters suppressed tools that have no visible renderer", () => { - expect(src).toContain('state.status === "completed" && !!ToolRegistry.render(tool)') + expect(parts).toContain('part.state.status === "completed" && !!ToolRegistry.render(part.tool)') }) it("filters pending questions until their dock request exists", () => { @@ -314,8 +316,8 @@ describe("AssistantMessage visible row contract (source)", () => { }) it("filters completed synthetic text and redaction-only reasoning", () => { - expect(src).toContain('part.type === "text" && part.synthetic && props.message.time.completed') - expect(src).toContain('.text?.replace("[REDACTED]", "").trim()') + expect(parts).toContain("part.synthetic && message?.time.completed") + expect(parts).toContain('.text?.replace("[REDACTED]", "").trim()') }) it("uses the plan exit card only when plan metadata is renderable", () => {