import { describe, expect, it } from "bun:test"; import { editToolRenderer } from "@oh-my-pi/pi-coding-agent/edit/renderer"; import * as themeModule from "@oh-my-pi/pi-coding-agent/modes/theme/theme"; async function getUiTheme() { await themeModule.initTheme(false, undefined, undefined, "dark", "light"); const theme = await themeModule.getThemeByName("dark"); expect(theme).toBeDefined(); return theme!; } describe("editToolRenderer", () => { it("shows the target path from partial JSON while edit args stream", async () => { const uiTheme = await getUiTheme(); const component = editToolRenderer.renderCall( { edits: [{}], __partialJson: '{"edits":[{"path":"packages/coding-agent/src/edit/renderer.ts","old_text":"before', }, { expanded: false, isPartial: true, spinnerFrame: 0, renderContext: { editMode: "replace" } }, uiTheme, ); const rendered = Bun.stripANSI(component.render(160).join("\n")); expect(rendered).toContain("packages/coding-agent/src/edit/renderer.ts"); }); });