import React from "react"; import { describe, it, expect, vi, beforeEach } from "vitest"; import { renderPaintcannon } from "../test-utils/render-paintcannon.tsx"; import { DiffRenderer } from "./diff-renderer.tsx"; import { readFileSync } from "fs"; vi.mock("fs", () => ({ readFileSync: vi.fn(), })); describe("DiffRenderer", () => { beforeEach(() => { vi.clearAllMocks(); }); it("renders diff when it can find oldText in file content", () => { // The diff function uses oldText to find where the changes start const oldText = "line 1\nline 2\nline 3\n"; vi.mocked(readFileSync).mockReturnValue(oldText); const { text: output } = renderPaintcannon( , ); expect(output.length).toBeGreaterThan(0); expect(output).toContain("Old"); expect(output).toContain("New"); }); it("returns empty when search string not in file content", () => { // This can happen if the file has been modified since the tool ran const fileText = "line 1\nline 2\nline 3\n"; const oldText = "line 2\nline 2\n"; // Doesn't match the file content const { text: output } = renderPaintcannon( , ); expect(output).toBe(""); }); });