import { fireEvent, render, screen } from "@testing-library/react"; import { expect, test, vi } from "vitest"; import { WorkflowLookup } from "@/features/workflows/workflow-lookup"; import type { WorkflowLookupItemVM } from "@/lib/types/view-models"; const WORKFLOW_ITEMS: WorkflowLookupItemVM[] = [ { orderId: 4201, workflowId: "wf-4201", workflowType: "MidEndPipelineWorkflow", status: "waiting_review", statusMeta: { label: "待审核", tone: "warning", }, currentStep: "review", currentStepLabel: "人工审核", failureCount: 2, reviewTaskStatus: "revision_uploaded", revisionCount: 1, pendingManualConfirm: true, updatedAt: "2026-03-27T09:15:00Z", }, ]; test("renders workflows as a high-density table with shared toolbar controls", () => { render(); expect(screen.getByRole("columnheader", { name: "流程类型" })).toBeInTheDocument(); expect(screen.getByRole("columnheader", { name: "失败次数" })).toBeInTheDocument(); expect(screen.getByLabelText("流程状态筛选")).toBeInTheDocument(); expect(screen.getByText("#4201")).toBeInTheDocument(); }); test("supports workflow status filtering and pagination actions", () => { const onStatusChange = vi.fn(); const onPageChange = vi.fn(); const onQuerySubmit = vi.fn(); render( , ); fireEvent.change(screen.getByLabelText("流程关键词搜索"), { target: { value: "4201" }, }); fireEvent.click(screen.getByRole("button", { name: "搜索流程" })); fireEvent.change(screen.getByLabelText("流程状态筛选"), { target: { value: "failed" }, }); fireEvent.click(screen.getByRole("button", { name: "上一页" })); fireEvent.click(screen.getByRole("button", { name: "下一页" })); expect(onQuerySubmit).toHaveBeenCalledWith("4201"); expect(onStatusChange).toHaveBeenCalledWith("failed"); expect(onPageChange).toHaveBeenNthCalledWith(1, 1); expect(onPageChange).toHaveBeenNthCalledWith(2, 3); });