summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/session-diff.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ui/src/components/session-diff.test.ts')
-rw-r--r--packages/ui/src/components/session-diff.test.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/ui/src/components/session-diff.test.ts b/packages/ui/src/components/session-diff.test.ts
new file mode 100644
index 000000000..463a72977
--- /dev/null
+++ b/packages/ui/src/components/session-diff.test.ts
@@ -0,0 +1,37 @@
+import { describe, expect, test } from "bun:test"
+import { normalize, text } from "./session-diff"
+
+describe("session diff", () => {
+ test("keeps unified patch content", () => {
+ const diff = {
+ file: "a.ts",
+ 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,
+ status: "modified" as const,
+ }
+ const view = normalize(diff)
+
+ expect(view.patch).toBe(diff.patch)
+ expect(view.fileDiff.name).toBe("a.ts")
+ expect(text(view, "deletions")).toBe("one\ntwo\n")
+ expect(text(view, "additions")).toBe("one\nthree\n")
+ })
+
+ test("converts legacy content into a patch", () => {
+ const diff = {
+ file: "a.ts",
+ before: "one\n",
+ after: "two\n",
+ additions: 1,
+ deletions: 1,
+ status: "modified" as const,
+ }
+ const view = normalize(diff)
+
+ expect(view.patch).toContain("@@ -1,1 +1,1 @@")
+ expect(text(view, "deletions")).toBe("one\n")
+ expect(text(view, "additions")).toBe("two\n")
+ })
+})