Files
kandev/apps/web/components/task/changes-panel-pr-files.test.tsx
T
José Almeida d5da5d0022 fix(web): select pull request on review surface (#1857)
* fix(web): select pull request on review surface

* fix(web): address review feedback

* test(web): stabilize tablet review target assertion

* fix(web): address late review feedback

* test(web): cover PR review boundary branches
2026-07-22 17:52:58 +01:00

80 lines
2.0 KiB
TypeScript

import { describe, it, expect, vi, afterEach } from "vitest";
import { render, fireEvent, screen, cleanup } from "@testing-library/react";
import { PRFilesGroupedList } from "./changes-panel-pr-files";
describe("PRFilesGroupedList", () => {
afterEach(() => cleanup());
it("passes diff source + repository context on open diff", () => {
const onOpenDiff = vi.fn();
render(
<PRFilesGroupedList
files={[
{
path: "README.md",
status: "modified",
plus: 1,
minus: 0,
oldPath: undefined,
repository_name: "backend",
prKey: "acme/backend/42",
},
]}
onOpenDiff={onOpenDiff}
/>,
);
fireEvent.click(screen.getByText("README.md"));
expect(onOpenDiff).toHaveBeenCalledWith("README.md", {
source: "pr",
repositoryName: "backend",
prKey: "acme/backend/42",
});
});
it("does not pass an empty single-repo stamp as repository context", () => {
const onOpenDiff = vi.fn();
render(
<PRFilesGroupedList
files={[
{
path: "README.md",
status: "modified",
plus: 1,
minus: 0,
oldPath: undefined,
repository_name: "",
},
]}
onOpenDiff={onOpenDiff}
/>,
);
fireEvent.click(screen.getByText("README.md"));
expect(onOpenDiff).toHaveBeenCalledWith("README.md", {
source: "pr",
repositoryName: undefined,
});
});
it("shows previous-path context for a moved PR file", () => {
render(
<PRFilesGroupedList
files={[
{
path: "src/new-name.ts",
status: "renamed",
plus: 0,
minus: 0,
oldPath: "src/old-name.ts",
repository_name: "",
},
]}
onOpenDiff={vi.fn()}
/>,
);
expect(screen.getByRole("img", { name: "Moved from src/old-name.ts" })).toBeTruthy();
});
});