diff --git a/packages/dashboard/app/components/__tests__/TaskCard.test.tsx b/packages/dashboard/app/components/__tests__/TaskCard.test.tsx index ac512a982..4856b2348 100644 --- a/packages/dashboard/app/components/__tests__/TaskCard.test.tsx +++ b/packages/dashboard/app/components/__tests__/TaskCard.test.tsx @@ -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( + , + ); + + 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( + , + ); + + 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( + , + ); + + 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(