test(FN-4634): complete Step 3 — cover in-progress github chip far-right modifier

Fusion-Task-Id: FN-4634
Fusion-Task-Lineage: 87cc75e7-ba50-4cb5-bb9f-6d86f49268e0
This commit is contained in:
Fusion
2026-05-15 09:42:31 -07:00
committed by gsxdsm
parent 376be6f96b
commit 0c38c17923

View File

@@ -1978,6 +1978,99 @@ describe("TaskCard", () => {
});
});
describe("FN-4634 in-progress GitHub linked badge far-right placement", () => {
const trackedIssue = {
owner: "owner",
repo: "repo",
number: 42,
url: "https://github.com/owner/repo/issues/42",
createdAt: "2026-05-12T00:00:00.000Z",
};
it.each([
{
name: "retry summary present",
taskPatch: { retrySummary: { total: 2 } as any },
expectedLeftChipSelector: ".card-retry-badge",
},
{
name: "time indicator present",
taskPatch: {
executionStartedAt: "2026-04-25T12:00:00.000Z",
updatedAt: "2026-04-25T12:12:00.000Z",
},
expectedLeftChipSelector: ".card-time-indicator",
},
])("keeps tracking chip visually last on in-progress when files changed is absent: $name", ({ taskPatch, expectedLeftChipSelector }) => {
const { container } = render(
<TaskCard
task={makeTask({
column: "in-progress",
sourceType: "dashboard_ui",
modifiedFiles: [],
githubTracking: { issue: trackedIssue },
...taskPatch,
})}
onOpenDetail={noop}
addToast={noop}
onOpenDetailWithTab={vi.fn()}
/>,
);
const footerRow = container.querySelector(".card-footer-row");
const trackingChip = container.querySelector(".card-github-tracking-chip") as HTMLElement | null;
const leftChip = container.querySelector(expectedLeftChipSelector) as HTMLElement | null;
expect(footerRow).not.toBeNull();
expect(footerRow).toHaveClass("card-footer-row--chip-far-right");
expect(trackingChip).not.toBeNull();
expect(leftChip).not.toBeNull();
expect(getComputedStyle(trackingChip as HTMLElement).order).toBe("2");
expect(getComputedStyle(leftChip as HTMLElement).order).not.toBe("2");
});
it("does not force far-right modifier when in-progress card has files changed", () => {
const { container } = render(
<TaskCard
task={makeTask({
column: "in-progress",
sourceType: "dashboard_ui",
modifiedFiles: ["src/file.ts"],
githubTracking: { issue: trackedIssue },
retrySummary: { total: 2 } as any,
})}
onOpenDetail={noop}
addToast={noop}
onOpenDetailWithTab={vi.fn()}
/>,
);
const footerRow = container.querySelector(".card-footer-row");
expect(footerRow).not.toBeNull();
expect(footerRow).not.toHaveClass("card-footer-row--chip-far-right");
});
it("does not force far-right modifier for in-review cards without files changed", () => {
const { container } = render(
<TaskCard
task={makeTask({
column: "in-review",
sourceType: "dashboard_ui",
modifiedFiles: [],
githubTracking: { issue: trackedIssue },
retrySummary: { total: 2 } as any,
})}
onOpenDetail={noop}
addToast={noop}
onOpenDetailWithTab={vi.fn()}
/>,
);
const footerRow = container.querySelector(".card-footer-row");
expect(footerRow).not.toBeNull();
expect(footerRow).not.toHaveClass("card-footer-row--chip-far-right");
});
});
it("does not render a GitHub tracking link when githubTracking is absent", () => {
render(
<TaskCard