From fd7cc25ac52307dd4c163c4b4143d2f00e5c42ee Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Sep 2026 21:38:00 +0800 Subject: [PATCH] style: reformat GeneratePage.test.tsx with repo prettier config (#1899 #1900) --- apps/web/src/test/pages/GeneratePage.test.tsx | 153 +++++++----------- 1 file changed, 60 insertions(+), 93 deletions(-) diff --git a/apps/web/src/test/pages/GeneratePage.test.tsx b/apps/web/src/test/pages/GeneratePage.test.tsx index 89d0ad40f..45baed55a 100644 --- a/apps/web/src/test/pages/GeneratePage.test.tsx +++ b/apps/web/src/test/pages/GeneratePage.test.tsx @@ -1,7 +1,7 @@ -import React from "react"; -import { describe, expect, it, vi, beforeEach, afterEach } from "vitest"; -import { render, act } from "@testing-library/react"; -import { MemoryRouter } from "react-router-dom"; +import React from "react" +import { describe, expect, it, vi, beforeEach, afterEach } from "vitest" +import { render, act } from "@testing-library/react" +import { MemoryRouter } from "react-router-dom" // Hoisted mock icons factory const hoistedIcons = vi.hoisted(() => { @@ -60,13 +60,13 @@ const hoistedIcons = vi.hoisted(() => { "UpOutlined", "DownOutlined", "CopyOutlined", - ]; - const icons: Record = {}; + ] + const icons: Record = {} iconNames.forEach((name) => { - icons[name] = () => React.createElement("span", null, name.charAt(0)); - }); - return icons; -}); + icons[name] = () => React.createElement("span", null, name.charAt(0)) + }) + return icons +}) // === React Query mock === vi.mock("@tanstack/react-query", () => ({ @@ -92,10 +92,10 @@ vi.mock("@tanstack/react-query", () => ({ fetchNextPage: vi.fn(), hasNextPage: false, })), -})); +})) // === Ant Design Icons mock === -vi.mock("@ant-design/icons", () => hoistedIcons); +vi.mock("@ant-design/icons", () => hoistedIcons) // === Ant Design mock === vi.mock("antd", () => { @@ -103,7 +103,7 @@ vi.mock("antd", () => { Text: ({ children }: any) => React.createElement("span", null, children), Title: ({ children }: any) => React.createElement("h1", null, children), Paragraph: ({ children }: any) => React.createElement("p", null, children), - }; + } return { Typography, message: { @@ -113,17 +113,10 @@ vi.mock("antd", () => { info: vi.fn(), }, Modal: ({ open, children, title }: any) => - open - ? React.createElement( - "div", - { role: "dialog", "data-title": title }, - children, - ) - : null, + open ? React.createElement("div", { role: "dialog", "data-title": title }, children) : null, Progress: () => React.createElement("div"), Popover: ({ children }: any) => React.createElement("span", null, children), - Popconfirm: ({ children }: any) => - React.createElement("span", null, children), + Popconfirm: ({ children }: any) => React.createElement("span", null, children), Tooltip: ({ children }: any) => React.createElement("span", null, children), Tabs: () => React.createElement("div"), Drawer: ({ open, children }: any) => @@ -136,15 +129,12 @@ vi.mock("antd", () => { Empty: () => React.createElement("div", null, "Empty"), Divider: () => React.createElement("hr"), Space: ({ children }: any) => React.createElement("div", null, children), - Dropdown: ({ children }: any) => - React.createElement("span", null, children), + Dropdown: ({ children }: any) => React.createElement("span", null, children), Menu: () => React.createElement("div"), Badge: ({ children }: any) => React.createElement("span", null, children), Radio: ({ children }: any) => React.createElement("span", null, children), - RadioGroup: ({ children }: any) => - React.createElement("div", null, children), - Checkbox: ({ children }: any) => - React.createElement("span", null, children), + RadioGroup: ({ children }: any) => React.createElement("div", null, children), + Checkbox: ({ children }: any) => React.createElement("span", null, children), InputNumber: () => React.createElement("input", { type: "number" }), Form: ({ children }: any) => React.createElement("form", null, children), FormItem: ({ children }: any) => React.createElement("div", null, children), @@ -156,32 +146,23 @@ vi.mock("antd", () => { Card: ({ children }: any) => React.createElement("div", null, children), Avatar: ({ children }: any) => React.createElement("span", null, children), Collapse: ({ children }: any) => React.createElement("div", null, children), - CollapsePanel: ({ children }: any) => - React.createElement("div", null, children), + CollapsePanel: ({ children }: any) => React.createElement("div", null, children), Tag: ({ children }: any) => React.createElement("span", null, children), - Button: ({ children, onClick }: any) => - React.createElement("button", { onClick }, children), - Input: ({ placeholder }: any) => - React.createElement("input", { placeholder }), - Select: ({ children }: any) => - React.createElement("select", null, children), - Option: ({ children }: any) => - React.createElement("option", null, children), - ConfigProvider: ({ children }: any) => - React.createElement(React.Fragment, null, children), - TextArea: ({ placeholder }: any) => - React.createElement("textarea", { placeholder }), + Button: ({ children, onClick }: any) => React.createElement("button", { onClick }, children), + Input: ({ placeholder }: any) => React.createElement("input", { placeholder }), + Select: ({ children }: any) => React.createElement("select", null, children), + Option: ({ children }: any) => React.createElement("option", null, children), + ConfigProvider: ({ children }: any) => React.createElement(React.Fragment, null, children), + TextArea: ({ placeholder }: any) => React.createElement("textarea", { placeholder }), Steps: () => React.createElement("div"), Step: () => React.createElement("div"), - }; -}); + } +}) // === UI Components mock === vi.mock("@/components/ui", () => ({ - Button: ({ children, onClick }: any) => - React.createElement("button", { onClick }, children), - Input: ({ placeholder }: any) => - React.createElement("input", { placeholder }), + Button: ({ children, onClick }: any) => React.createElement("button", { onClick }, children), + Input: ({ placeholder }: any) => React.createElement("input", { placeholder }), Modal: ({ open, children }: any) => open ? React.createElement("div", { role: "dialog" }, children) : null, Drawer: ({ open, children }: any) => @@ -195,7 +176,7 @@ vi.mock("@/components/ui", () => ({ Upload: ({ children }: any) => React.createElement("div", null, children), Slider: () => React.createElement("div"), Switch: () => React.createElement("input", { type: "checkbox" }), -})); +})) // === API mocks === vi.mock("@/api/assets", () => ({ @@ -210,40 +191,36 @@ vi.mock("@/api/assets", () => ({ batchDeleteAssets: vi.fn().mockResolvedValue({}), isAssetUsable: vi.fn().mockReturnValue(true), AssetType: { VIDEO: "video", IMAGE: "image", AUDIO: "audio", VOICE: "voice" }, -})); +})) vi.mock("@/api/tags", () => ({ getTags: vi.fn().mockResolvedValue({ items: [] }), createTag: vi.fn().mockResolvedValue({}), tagAsset: vi.fn().mockResolvedValue({}), untagAsset: vi.fn().mockResolvedValue({}), -})); +})) vi.mock("@/api/tts", () => ({ synthesizeSpeech: vi.fn().mockResolvedValue({ job_id: "test-job" }), - getTTSJobStatus: vi - .fn() - .mockResolvedValue({ status: "completed", audio_url: "" }), + getTTSJobStatus: vi.fn().mockResolvedValue({ status: "completed", audio_url: "" }), saveTtsToLibrary: vi.fn().mockResolvedValue({}), -})); +})) vi.mock("@/api/voices", () => ({ fetchPresetVoices: vi.fn().mockResolvedValue({ items: [] }), -})); +})) vi.mock("@/api/editing-planner", () => ({ getEditingTemplates: vi.fn().mockResolvedValue({ items: [], total: 0 }), MODE_LABELS: { pip: "画中画" }, -})); +})) vi.mock("@/api/titles", () => ({ getTitles: vi.fn().mockResolvedValue({ items: [] }), -})); +})) vi.mock("@/api/template-editor", () => ({ - updateEditPlan: vi - .fn() - .mockResolvedValue({ plan_id: "test-plan", template_id: "test-template" }), + updateEditPlan: vi.fn().mockResolvedValue({ plan_id: "test-plan", template_id: "test-template" }), getEditPlan: vi.fn().mockResolvedValue({ plan_id: "test-plan", template_id: "test-template", @@ -252,11 +229,11 @@ vi.mock("@/api/template-editor", () => ({ status: "draft", }), getGenerationTaskResults: vi.fn().mockResolvedValue({ items: [] }), -})); +})) vi.mock("@/api/voice-clone", () => ({ formatDuration: vi.fn((s: number) => `${s}s`), -})); +})) vi.mock("@/api/client", () => ({ default: { @@ -266,7 +243,7 @@ vi.mock("@/api/client", () => ({ put: vi.fn().mockResolvedValue({ data: {} }), delete: vi.fn().mockResolvedValue({ data: {} }), }, -})); +})) // === Hooks mock === vi.mock("@/hooks/useCloneProgress", () => ({ @@ -276,55 +253,45 @@ vi.mock("@/hooks/useCloneProgress", () => ({ start: vi.fn(), reset: vi.fn(), })), -})); +})) // === Components mock === vi.mock("@/components/voice/CloneModal", () => ({ default: () => React.createElement("div", { "data-testid": "CloneModal" }), -})); +})) // === PageHead mock === vi.mock("@/components/layout/PageHead", () => ({ default: ({ title }: { title: string }) => React.createElement("div", { "data-testid": "page-head" }, title), -})); +})) // CSS mock -vi.mock("@/pages/generate/generate.css", () => ({})); +vi.mock("@/pages/generate/generate.css", () => ({})) -import GeneratePage from "@/pages/generate/GeneratePage"; +import GeneratePage from "@/pages/generate/GeneratePage" describe("GeneratePage", () => { beforeEach(() => { - vi.useFakeTimers(); - }); + vi.useFakeTimers() + }) afterEach(() => { - vi.useRealTimers(); - }); + vi.useRealTimers() + }) it("renders without crashing", () => { const { container } = render( - React.createElement( - MemoryRouter, - null, - React.createElement(GeneratePage), - ), - ); - expect(container).toBeTruthy(); - }); + React.createElement(MemoryRouter, null, React.createElement(GeneratePage)), + ) + expect(container).toBeTruthy() + }) it("advances timers without errors", () => { - render( - React.createElement( - MemoryRouter, - null, - React.createElement(GeneratePage), - ), - ); + render(React.createElement(MemoryRouter, null, React.createElement(GeneratePage))) act(() => { - vi.advanceTimersByTime(30000); - }); - expect(true).toBe(true); - }); -}); + vi.advanceTimersByTime(30000) + }) + expect(true).toBe(true) + }) +})