import { describe, expect, test } from "bun:test" import { patchFiles } from "./apply-patch-file" import { text } from "./session-diff" describe("apply patch file", () => { test("parses patch metadata from the server", () => { const file = patchFiles([ { filePath: "/tmp/a.ts", relativePath: "a.ts", type: "update", patch: "Index: a.ts\n===================================================================\n--- a.ts\t\n+++ a.ts\t\n@@ -1,2 +1,2 @@\n one\n-two\n+three\n", additions: 1, deletions: 1, }, ])[0] expect(file).toBeDefined() expect(file?.view.fileDiff.name).toBe("a.ts") expect(text(file!.view, "deletions")).toBe("one\ntwo\n") expect(text(file!.view, "additions")).toBe("one\nthree\n") }) test("keeps legacy before and after payloads working", () => { const file = patchFiles([ { filePath: "/tmp/a.ts", relativePath: "a.ts", type: "update", before: "one\n", after: "two\n", additions: 1, deletions: 1, }, ])[0] expect(file).toBeDefined() expect(file?.view.patch).toContain("@@ -1,1 +1,1 @@") expect(text(file!.view, "deletions")).toBe("one\n") expect(text(file!.view, "additions")).toBe("two\n") }) })