feat(FN-1876): merge fusion/fn-1876

This commit is contained in:
gsxdsm
2026-04-15 09:46:36 -07:00
parent 72076c65d1
commit e5fac0f9b6
2 changed files with 45 additions and 9 deletions

View File

@@ -291,7 +291,41 @@ describe("TaskDetailModal", () => {
expect(retryButtons).toHaveLength(1);
});
it("shows 'Move to Todo' in Move dropdown for in-review tasks (not 'Retry')", () => {
it("closes modal immediately when Retry is clicked (before API call)", async () => {
const onClose = vi.fn();
const onRetryTask = vi.fn(async () => ({}) as Task);
render(
<TaskDetailModal
task={makeTask({ column: "in-review", status: "failed" })}
onClose={onClose}
onMoveTask={noopMove}
onDeleteTask={noopDelete}
onMergeTask={noopMerge}
onOpenDetail={noopOpenDetail}
onRetryTask={onRetryTask}
addToast={noop}
/>,
);
// Open Actions dropdown and click Retry
const actionsBtn = screen.getByRole("button", { name: /actions/i });
await act(async () => {
fireEvent.click(actionsBtn);
});
const retryBtn = screen.getByRole("menuitem", { name: "Retry" });
await act(async () => {
fireEvent.click(retryBtn);
});
// Modal should close immediately (optimistic close before API call)
expect(onClose).toHaveBeenCalledTimes(1);
// onRetryTask should still be called with the correct task ID
expect(onRetryTask).toHaveBeenCalledWith("FN-099");
});
it("shows 'Move to Todo' in Move dropdown for in-review tasks (not 'Retry')", () => {
render(
<TaskDetailModal
task={makeTask({ column: "in-review" })}