feat(FN-3625): test TaskCard drag override and graph drag opt-out wiring
Adds test coverage for TaskCard drag override behavior and DependencyGraph drag opt-out wiring, with a minor README clarification in the graph plugin. Fusion-Task-Id: FN-3625
This commit is contained in:
@@ -59,6 +59,12 @@ describe("TaskCard", () => {
|
||||
expect(screen.getByText("FN-001")).toBeDefined();
|
||||
});
|
||||
|
||||
it("keeps native card dragging enabled by default", () => {
|
||||
const { container } = render(<TaskCard task={makeTask()} onOpenDetail={noop} addToast={noop} />);
|
||||
const card = container.querySelector(".card") as HTMLElement;
|
||||
expect(card.getAttribute("draggable")).toBe("true");
|
||||
});
|
||||
|
||||
it("disables native card dragging when disableDrag is true", () => {
|
||||
const { container } = render(<TaskCard task={makeTask()} onOpenDetail={noop} addToast={noop} disableDrag={true} />);
|
||||
const card = container.querySelector(".card") as HTMLElement;
|
||||
@@ -1385,6 +1391,17 @@ describe("TaskCard provider icons on agent row", () => {
|
||||
});
|
||||
|
||||
describe("TaskCard memo comparator provenance behavior", () => {
|
||||
it("returns false when disableDrag changes", () => {
|
||||
const task = makeTask();
|
||||
|
||||
expect(
|
||||
__test_areTaskCardPropsEqual(
|
||||
{ task, onOpenDetail: noop, addToast: noop, disableDrag: false } as any,
|
||||
{ task, onOpenDetail: noop, addToast: noop, disableDrag: true } as any,
|
||||
),
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
it("returns false when sourceMetadata.agentName changes", () => {
|
||||
const previousTask = makeTask({ sourceType: "automation", sourceMetadata: { agentName: "Agent One" } });
|
||||
const nextTask = makeTask({ sourceType: "automation", sourceMetadata: { agentName: "Agent Two" } });
|
||||
|
||||
@@ -6,8 +6,8 @@ import { DependencyGraph } from "../DependencyGraph";
|
||||
const fitToGraph = vi.fn();
|
||||
|
||||
vi.mock("@fusion/dashboard/app/components/TaskCard", () => ({
|
||||
TaskCard: ({ task, onOpenDetail }: { task: Task; onOpenDetail: () => void }) => (
|
||||
<button data-testid={`task-${task.id}`} onClick={() => onOpenDetail(task)}>{task.id}</button>
|
||||
TaskCard: ({ task, onOpenDetail, disableDrag }: { task: Task; onOpenDetail: (task: Task) => void; disableDrag?: boolean }) => (
|
||||
<button data-testid={`task-${task.id}`} draggable={!disableDrag} onClick={() => onOpenDetail(task)}>{task.id}</button>
|
||||
),
|
||||
}));
|
||||
|
||||
@@ -73,6 +73,11 @@ describe("DependencyGraph", () => {
|
||||
expect(screen.queryByTestId("graph-task-node-C")).toBeNull();
|
||||
});
|
||||
|
||||
it("renders embedded cards with native dragging disabled", () => {
|
||||
render(<DependencyGraph tasks={[createTask("A", "in-progress")]} onOpenTaskDetail={vi.fn()} />);
|
||||
expect(screen.getByTestId("task-A").getAttribute("draggable")).toBe("false");
|
||||
});
|
||||
|
||||
it("clicking a card triggers onOpenDetail", () => {
|
||||
const onOpenDetail = vi.fn();
|
||||
render(<DependencyGraph tasks={[createTask("A", "in-progress")]} onOpenDetail={onOpenDetail} />);
|
||||
|
||||
Reference in New Issue
Block a user