Files
kandev/apps/web/components/workflow-selector-row.test.tsx
T

60 lines
2.2 KiB
TypeScript

import { cleanup, render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it } from "vitest";
import { TooltipProvider } from "@kandev/ui/tooltip";
import { WorkflowSelectorRow } from "./workflow-selector-row";
import type { TaskCreateLaunchPreview } from "./task-create-dialog-launch-preview";
afterEach(cleanup);
const launchPreview: TaskCreateLaunchPreview = {
stepId: "step-1",
stepName: "In Progress",
stepPrompt: "Run {{task_prompt}}",
};
function renderSelector(preview: TaskCreateLaunchPreview | null = launchPreview) {
return render(
<TooltipProvider>
<WorkflowSelectorRow
workflows={[{ id: "workflow-1", name: "Development" }]}
snapshots={{}}
selectedWorkflowId="workflow-1"
onWorkflowChange={() => {}}
agentProfiles={[]}
launchPreview={preview}
/>
</TooltipProvider>,
);
}
describe("WorkflowSelectorRow launch destination", () => {
it("shows the launch controls immediately after the selector", () => {
renderSelector();
const trigger = screen.getByTestId("workflow-selector-trigger");
const row = screen.getByTestId("workflow-selector-row");
const launchStep = screen.getByTestId("task-create-launch-step");
expect(trigger.textContent).toContain("Development");
expect(trigger.contains(launchStep)).toBe(false);
expect(row.contains(trigger)).toBe(true);
expect(row.contains(launchStep)).toBe(true);
expect(trigger.className).not.toContain("flex-1");
expect(launchStep.textContent).toBe("Start step: In Progress");
expect(launchStep.className).not.toContain("ml-auto");
const launchStepInfo = screen.getByTestId("task-create-launch-step-info");
expect(trigger.contains(launchStepInfo)).toBe(false);
expect(launchStepInfo.getAttribute("aria-label")).toBe("Learn about the task start step");
expect(Array.from(row.children).indexOf(launchStepInfo)).toBeLessThan(
Array.from(row.children).indexOf(launchStep),
);
});
it("does not show a destination when the selected workflow has no preview", () => {
renderSelector(null);
expect(screen.queryByTestId("task-create-launch-step")).toBeNull();
});
});