File size: 1,433 Bytes
3e05655 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { describe, expect, test } from "bun:test"
import type { SnapshotFileDiff } from "@opencode-ai/sdk/v2"
import { uniqueSummaryDiffs } from "./summary-diffs"
const diff = (file: string, additions: number) =>
({
file,
additions,
deletions: 0,
}) satisfies SnapshotFileDiff
describe("uniqueSummaryDiffs", () => {
test("drops entries without files and preserves unique input", () => {
const alpha = diff("alpha.ts", 1)
const beta = diff("beta.ts", 1)
const invalid = { additions: 1, deletions: 0 } satisfies SnapshotFileDiff
expect(uniqueSummaryDiffs(undefined)).toEqual([])
expect(uniqueSummaryDiffs([])).toEqual([])
expect(uniqueSummaryDiffs([invalid])).toEqual([])
const result = uniqueSummaryDiffs([alpha, invalid, beta])
expect(result).toEqual([alpha, beta])
expect(result[0]).toBe(alpha)
expect(result[1]).toBe(beta)
})
test("keeps the last diff per file in the legacy display order", () => {
const oldAlpha = diff("alpha.ts", 1)
const oldBeta = diff("beta.ts", 1)
const newAlpha = diff("alpha.ts", 2)
const charlie = diff("charlie.ts", 1)
const newBeta = diff("beta.ts", 2)
const result = uniqueSummaryDiffs([oldAlpha, oldBeta, newAlpha, charlie, newBeta])
expect(result).toEqual([newAlpha, charlie, newBeta])
expect(result[0]).toBe(newAlpha)
expect(result[1]).toBe(charlie)
expect(result[2]).toBe(newBeta)
})
})
|