56 lines · 1.7 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import {  getCachedNativeReviewDiffData,  type BuildNativeReviewDiffDataInput,} from "./nativeReviewDiffAdapter";import type { ReviewInlineComment } from "./reviewCommentSelection";import { buildReviewParsedDiff } from "./reviewModel"; const parsedDiff = buildReviewParsedDiff(  [    "diff --git a/example.ts b/example.ts",    "--- a/example.ts",    "+++ b/example.ts",    "@@ -1 +1 @@",    "-const before = 1;",    "+const after = 2;",  ].join("\n"),  "native-review-cache-test",); function makeComment(text: string): ReviewInlineComment {  return {    id: "comment-1",    sectionId: "git:working-tree",    sectionTitle: "Dirty worktree",    filePath: "example.ts",    startIndex: 0,    endIndex: 0,    rangeLabel: "-1",    text,    diff: "@@ -1,1 +1,0 @@\n-const before = 1;",  };} function buildInput(comments: BuildNativeReviewDiffDataInput["comments"]) {  return { parsedDiff, comments } satisfies BuildNativeReviewDiffDataInput;} describe("getCachedNativeReviewDiffData", () => {  it("reuses the row model for equivalent empty comment arrays", () => {    const first = getCachedNativeReviewDiffData(buildInput([]));    const second = getCachedNativeReviewDiffData(buildInput([]));     expect(second).toBe(first);  });   it("reuses equivalent comment contents and invalidates changed comments", () => {    const first = getCachedNativeReviewDiffData(buildInput([makeComment("First")]));    const equivalent = getCachedNativeReviewDiffData(buildInput([makeComment("First")]));    const changed = getCachedNativeReviewDiffData(buildInput([makeComment("Changed")]));     expect(equivalent).toBe(first);    expect(changed).not.toBe(first);  });});