import { render, screen } from "@testing-library/react"; import { test, expect } from "vitest"; import { OrderDetail } from "@/features/orders/order-detail"; import type { OrderDetailVM } from "@/lib/types/view-models"; const BASE_ORDER_DETAIL: OrderDetailVM = { orderId: 101, workflowId: "wf-101", customerLevel: "mid", serviceMode: "semi_pro", status: "waiting_review", statusMeta: { label: "待审核", tone: "warning", }, currentStep: "review", currentStepLabel: "人工审核", modelId: 1001, poseId: 2002, garmentAssetId: 3003, sceneRefAssetId: 4004, currentRevisionAssetId: null, currentRevisionVersion: null, latestRevisionAssetId: null, latestRevisionVersion: null, revisionCount: 0, reviewTaskStatus: null, pendingManualConfirm: false, createdAt: "2026-03-27T00:00:00Z", updatedAt: "2026-03-27T00:10:00Z", finalAsset: { id: 88, orderId: 101, type: "final", stepName: null, parentAssetId: null, rootAssetId: null, versionNo: 0, isCurrentVersion: false, stepLabel: "最终图", label: "最终图", uri: "mock://final-preview", metadata: null, createdAt: "2026-03-27T00:10:00Z", isMock: true, }, finalAssetState: { kind: "ready", }, assets: [ { id: 77, orderId: 101, type: "fusion", stepName: "fusion", parentAssetId: null, rootAssetId: null, versionNo: 0, isCurrentVersion: false, stepLabel: "融合", label: "融合产物", uri: "mock://fusion-preview", metadata: null, createdAt: "2026-03-27T00:09:00Z", isMock: true, }, ], assetGalleryState: { kind: "ready", }, hasMockAssets: true, }; test("shows a mock asset banner when the current order contains mock assets", () => { render(); expect(screen.getByText("当前资产来自 mock 流程")).toBeInTheDocument(); expect(screen.getAllByText("最终图").length).toBeGreaterThan(0); }); test("renders the business-empty final-result state when no final asset exists", () => { render( , ); expect(screen.getByText("最终图暂未生成")).toBeInTheDocument(); expect(screen.getByText("当前订单还没有可展示的最终结果。")).toBeInTheDocument(); });