From 0623d700b72aa6308eabb9967f89a2ff8b906e9d Mon Sep 17 00:00:00 2001 From: CI Bot Date: Sun, 19 Jul 2026 11:12:33 +0800 Subject: [PATCH] =?UTF-8?q?style:=20prettier=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/test/api/assets.test.ts | 548 ++++++++-------- apps/web/src/test/api/bgm.test.ts | 29 +- apps/web/src/test/api/duplication.test.ts | 135 ++-- apps/web/src/test/api/editPlans.test.ts | 585 +++++++++--------- apps/web/src/test/api/editingPlanner.test.ts | 185 +++--- apps/web/src/test/api/products.test.ts | 165 ++--- apps/web/src/test/api/projects.test.ts | 79 ++- apps/web/src/test/api/subscription.test.ts | 135 ++-- apps/web/src/test/api/tags.test.ts | 127 ++-- apps/web/src/test/api/tasks.test.ts | 127 ++-- apps/web/src/test/api/templates.test.ts | 160 ++--- apps/web/src/test/api/titles.test.ts | 127 ++-- apps/web/src/test/api/tts.test.ts | 210 ++++--- apps/web/src/test/api/voiceClone.test.ts | 210 ++++--- apps/web/src/test/api/voices.test.ts | 185 +++--- .../AssetSelector/AssetSelector.test.tsx | 3 - .../test/components/layout/AppLayout.test.tsx | 4 +- .../test/components/layout/Header.test.tsx | 20 +- .../test/components/layout/PageHead.test.tsx | 10 +- .../test/components/layout/Sidebar.test.tsx | 4 +- .../src/test/components/ui/Button.test.tsx | 2 +- apps/web/src/test/components/ui/Card.test.tsx | 2 +- .../web/src/test/components/ui/Modal.test.tsx | 2 +- .../src/test/components/ui/Select.test.tsx | 2 +- apps/web/src/test/components/ui/Tag.test.tsx | 2 +- .../src/test/components/ui/Tooltip.test.tsx | 2 +- .../src/test/hooks/useCloneProgress.test.tsx | 4 +- apps/web/src/test/pages/Accounts.test.tsx | 6 +- .../src/test/pages/AdminComingSoon.test.tsx | 4 +- apps/web/src/test/pages/Billing.test.tsx | 6 +- apps/web/src/test/pages/Dashboard.test.tsx | 4 +- .../src/test/pages/DuplicationDetail.test.tsx | 12 +- .../src/test/pages/DuplicationUpload.test.tsx | 4 +- apps/web/src/test/pages/HomePage.test.tsx | 8 +- apps/web/src/test/pages/MyVoices.test.tsx | 12 +- apps/web/src/test/pages/Plans.test.tsx | 6 +- .../src/test/pages/ProductLibrary.test.tsx | 44 +- apps/web/src/test/pages/Settings.test.tsx | 6 +- apps/web/src/test/pages/TaskCenter.test.tsx | 40 +- .../src/test/pages/TemplateLibrary.test.tsx | 38 +- apps/web/src/test/pages/TitleLibrary.test.tsx | 6 +- apps/web/src/test/pages/VoiceClone.test.tsx | 12 +- apps/web/src/test/pages/VoiceLibrary.test.tsx | 52 +- .../test/pages/auth/ForgotPassword.test.tsx | 6 +- apps/web/src/test/pages/auth/Login.test.tsx | 8 +- .../web/src/test/pages/auth/Register.test.tsx | 6 +- .../test/pages/auth/ResetPassword.test.tsx | 6 +- .../GenerationHistoryModal.test.tsx | 4 +- .../components/GreenScreenPanel.test.tsx | 8 +- .../components/PreviewPlayer.test.tsx | 4 +- 50 files changed, 1809 insertions(+), 1557 deletions(-) diff --git a/apps/web/src/test/api/assets.test.ts b/apps/web/src/test/api/assets.test.ts index 1cdfdb674..0dbd25b59 100644 --- a/apps/web/src/test/api/assets.test.ts +++ b/apps/web/src/test/api/assets.test.ts @@ -1,5 +1,28 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getAssetDiagnosis, getAssetLibraries, createAssetLibrary, ensureDefaultLibrary, deleteAssetLibrary, getAssets, getAssetsByKind, createAsset, updateAsset, updateAssetReviewStatus, deleteAsset, uploadAsset, prepareDirectUpload, completeDirectUpload, uploadAssetDirect, getIngestJob, submitClassificationJob, getClassificationJob, batchDeleteAssets, batchTagAssets, batchClassifyAssets, batchMarkAssets } from "@/api/assets" +import { + getAssetDiagnosis, + getAssetLibraries, + createAssetLibrary, + ensureDefaultLibrary, + deleteAssetLibrary, + getAssets, + getAssetsByKind, + createAsset, + updateAsset, + updateAssetReviewStatus, + deleteAsset, + uploadAsset, + prepareDirectUpload, + completeDirectUpload, + uploadAssetDirect, + getIngestJob, + submitClassificationJob, + getClassificationJob, + batchDeleteAssets, + batchTagAssets, + batchClassifyAssets, + batchMarkAssets, +} from "@/api/assets" const mockGet = vi.fn() const mockPost = vi.fn() @@ -24,11 +47,12 @@ vi.mock("@/api/projects", async (importOriginal) => { const actual = await importOriginal() return { ...actual, - getOrCreateDefaultProject: vi.fn().mockResolvedValue({ id: "default-project-id", name: "Default Project", description: "" }), + getOrCreateDefaultProject: vi + .fn() + .mockResolvedValue({ id: "default-project-id", name: "Default Project", description: "" }), } }) - describe("assets API", () => { beforeEach(() => { vi.clearAllMocks() @@ -39,345 +63,345 @@ describe("assets API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getAssetDiagnosis", () => { - it("should resolve successfully", async () => { - await expect(getAssetDiagnosis("test-assetId?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getAssetDiagnosis("test-assetId?")).rejects.toThrow() - }) + describe("getAssetDiagnosis", () => { + it("should resolve successfully", async () => { + await expect(getAssetDiagnosis("test-assetId?")).resolves.not.toThrow() }) - describe("getAssetLibraries", () => { - it("should resolve successfully", async () => { - await expect(getAssetLibraries()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getAssetDiagnosis("test-assetId?")).rejects.toThrow() + }) + }) - await expect(getAssetLibraries()).rejects.toThrow() - }) + describe("getAssetLibraries", () => { + it("should resolve successfully", async () => { + await expect(getAssetLibraries()).resolves.not.toThrow() }) - describe("createAssetLibrary", () => { - it("should resolve successfully", async () => { - await expect(createAssetLibrary({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getAssetLibraries()).rejects.toThrow() + }) + }) - await expect(createAssetLibrary({ name: "test-item" })).rejects.toThrow() - }) + describe("createAssetLibrary", () => { + it("should resolve successfully", async () => { + await expect(createAssetLibrary({ name: "test-item" })).resolves.not.toThrow() }) - describe("ensureDefaultLibrary", () => { - it("should resolve successfully", async () => { - await expect(ensureDefaultLibrary({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createAssetLibrary({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(ensureDefaultLibrary({ name: "test-item" })).rejects.toThrow() - }) + describe("ensureDefaultLibrary", () => { + it("should resolve successfully", async () => { + await expect(ensureDefaultLibrary({ name: "test-item" })).resolves.not.toThrow() }) - describe("deleteAssetLibrary", () => { - it("should resolve successfully", async () => { - await expect(deleteAssetLibrary("test-libraryId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(ensureDefaultLibrary({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(deleteAssetLibrary("test-libraryId")).rejects.toThrow() - }) + describe("deleteAssetLibrary", () => { + it("should resolve successfully", async () => { + await expect(deleteAssetLibrary("test-libraryId")).resolves.not.toThrow() }) - describe("getAssets", () => { - it("should resolve successfully", async () => { - await expect(getAssets("test-libraryId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteAssetLibrary("test-libraryId")).rejects.toThrow() + }) + }) - await expect(getAssets("test-libraryId")).rejects.toThrow() - }) + describe("getAssets", () => { + it("should resolve successfully", async () => { + await expect(getAssets("test-libraryId")).resolves.not.toThrow() }) - describe("getAssetsByKind", () => { - it("should resolve successfully", async () => { - await expect(getAssetsByKind("test-kind")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getAssets("test-libraryId")).rejects.toThrow() + }) + }) - await expect(getAssetsByKind("test-kind")).rejects.toThrow() - }) + describe("getAssetsByKind", () => { + it("should resolve successfully", async () => { + await expect(getAssetsByKind("test-kind")).resolves.not.toThrow() }) - describe("createAsset", () => { - it("should resolve successfully", async () => { - await expect(createAsset({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getAssetsByKind("test-kind")).rejects.toThrow() + }) + }) - await expect(createAsset({ name: "test-item" })).rejects.toThrow() - }) + describe("createAsset", () => { + it("should resolve successfully", async () => { + await expect(createAsset({ name: "test-item" })).resolves.not.toThrow() }) - describe("updateAsset", () => { - it("should resolve successfully", async () => { - await expect(updateAsset("test-assetId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createAsset({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(updateAsset("test-assetId")).rejects.toThrow() - }) + describe("updateAsset", () => { + it("should resolve successfully", async () => { + await expect(updateAsset("test-assetId")).resolves.not.toThrow() }) - describe("updateAssetReviewStatus", () => { - it("should resolve successfully", async () => { - await expect(updateAssetReviewStatus("test-assetId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateAsset("test-assetId")).rejects.toThrow() + }) + }) - await expect(updateAssetReviewStatus("test-assetId")).rejects.toThrow() - }) + describe("updateAssetReviewStatus", () => { + it("should resolve successfully", async () => { + await expect(updateAssetReviewStatus("test-assetId")).resolves.not.toThrow() }) - describe("deleteAsset", () => { - it("should resolve successfully", async () => { - await expect(deleteAsset("test-assetId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateAssetReviewStatus("test-assetId")).rejects.toThrow() + }) + }) - await expect(deleteAsset("test-assetId")).rejects.toThrow() - }) + describe("deleteAsset", () => { + it("should resolve successfully", async () => { + await expect(deleteAsset("test-assetId")).resolves.not.toThrow() }) - describe("uploadAsset", () => { - it("should resolve successfully", async () => { - await expect(uploadAsset(new FormData())).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteAsset("test-assetId")).rejects.toThrow() + }) + }) - await expect(uploadAsset(new FormData())).rejects.toThrow() - }) + describe("uploadAsset", () => { + it("should resolve successfully", async () => { + await expect(uploadAsset(new FormData())).resolves.not.toThrow() }) - describe("prepareDirectUpload", () => { - it("should resolve successfully", async () => { - await expect(prepareDirectUpload({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(uploadAsset(new FormData())).rejects.toThrow() + }) + }) - await expect(prepareDirectUpload({ name: "test-item" })).rejects.toThrow() - }) + describe("prepareDirectUpload", () => { + it("should resolve successfully", async () => { + await expect(prepareDirectUpload({ name: "test-item" })).resolves.not.toThrow() }) - describe("completeDirectUpload", () => { - it("should resolve successfully", async () => { - await expect(completeDirectUpload({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(prepareDirectUpload({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(completeDirectUpload({ name: "test-item" })).rejects.toThrow() - }) + describe("completeDirectUpload", () => { + it("should resolve successfully", async () => { + await expect(completeDirectUpload({ name: "test-item" })).resolves.not.toThrow() }) - describe.skip("uploadAssetDirect", () => { - it("should resolve successfully", async () => { - // XMLHttpRequest + OSS 直传,需要复杂 mock,跳过以保证覆盖率 - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(completeDirectUpload({ name: "test-item" })).rejects.toThrow() + }) + }) + + describe.skip("uploadAssetDirect", () => { + it("should resolve successfully", async () => { + // XMLHttpRequest + OSS 直传,需要复杂 mock,跳过以保证覆盖率 + }) + }) + + describe("getIngestJob", () => { + it("should resolve successfully", async () => { + await expect(getIngestJob("test-jobId")).resolves.not.toThrow() }) - describe("getIngestJob", () => { - it("should resolve successfully", async () => { - await expect(getIngestJob("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getIngestJob("test-jobId")).rejects.toThrow() + }) + }) - await expect(getIngestJob("test-jobId")).rejects.toThrow() - }) + describe("submitClassificationJob", () => { + it("should resolve successfully", async () => { + await expect(submitClassificationJob({ name: "test-item" })).resolves.not.toThrow() }) - describe("submitClassificationJob", () => { - it("should resolve successfully", async () => { - await expect(submitClassificationJob({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(submitClassificationJob({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(submitClassificationJob({ name: "test-item" })).rejects.toThrow() - }) + describe("getClassificationJob", () => { + it("should resolve successfully", async () => { + await expect(getClassificationJob("test-jobId")).resolves.not.toThrow() }) - describe("getClassificationJob", () => { - it("should resolve successfully", async () => { - await expect(getClassificationJob("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getClassificationJob("test-jobId")).rejects.toThrow() + }) + }) - await expect(getClassificationJob("test-jobId")).rejects.toThrow() - }) + describe("batchDeleteAssets", () => { + it("should resolve successfully", async () => { + await expect(batchDeleteAssets(["item-1", "item-2"])).resolves.not.toThrow() }) - describe("batchDeleteAssets", () => { - it("should resolve successfully", async () => { - await expect(batchDeleteAssets(["item-1", "item-2"])).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(batchDeleteAssets(["item-1", "item-2"])).rejects.toThrow() + }) + }) - await expect(batchDeleteAssets(["item-1", "item-2"])).rejects.toThrow() - }) + describe("batchTagAssets", () => { + it("should resolve successfully", async () => { + await expect(batchTagAssets({ name: "test-item" })).resolves.not.toThrow() }) - describe("batchTagAssets", () => { - it("should resolve successfully", async () => { - await expect(batchTagAssets({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(batchTagAssets({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(batchTagAssets({ name: "test-item" })).rejects.toThrow() - }) + describe("batchClassifyAssets", () => { + it("should resolve successfully", async () => { + await expect(batchClassifyAssets({ name: "test-item" })).resolves.not.toThrow() }) - describe("batchClassifyAssets", () => { - it("should resolve successfully", async () => { - await expect(batchClassifyAssets({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(batchClassifyAssets({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(batchClassifyAssets({ name: "test-item" })).rejects.toThrow() - }) + describe("batchMarkAssets", () => { + it("should resolve successfully", async () => { + await expect(batchMarkAssets({ name: "test-item" })).resolves.not.toThrow() }) - describe("batchMarkAssets", () => { - it("should resolve successfully", async () => { - await expect(batchMarkAssets({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(batchMarkAssets({ name: "test-item" })).rejects.toThrow() - }) + await expect(batchMarkAssets({ name: "test-item" })).rejects.toThrow() }) + }) }) diff --git a/apps/web/src/test/api/bgm.test.ts b/apps/web/src/test/api/bgm.test.ts index 9df0c22a9..3817c6dfa 100644 --- a/apps/web/src/test/api/bgm.test.ts +++ b/apps/web/src/test/api/bgm.test.ts @@ -20,7 +20,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("bgm API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,19 +30,19 @@ describe("bgm API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getBgmPresets", () => { - it("should resolve successfully", async () => { - await expect(getBgmPresets("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getBgmPresets("test-params?")).rejects.toThrow() - }) + describe("getBgmPresets", () => { + it("should resolve successfully", async () => { + await expect(getBgmPresets("test-params?")).resolves.not.toThrow() }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(getBgmPresets("test-params?")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/duplication.test.ts b/apps/web/src/test/api/duplication.test.ts index 21a1fc105..d7028b154 100644 --- a/apps/web/src/test/api/duplication.test.ts +++ b/apps/web/src/test/api/duplication.test.ts @@ -1,5 +1,11 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { uploadForDuplication, getDuplicationRecords, getDuplicationDetail, deleteDuplicationRecord, retryDuplication } from "@/api/duplication" +import { + uploadForDuplication, + getDuplicationRecords, + getDuplicationDetail, + deleteDuplicationRecord, + retryDuplication, +} from "@/api/duplication" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +26,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("duplication API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,83 +36,83 @@ describe("duplication API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("uploadForDuplication", () => { - it("should resolve successfully", async () => { - await expect(uploadForDuplication(new File(["test"], "test.txt"))).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(uploadForDuplication(new File(["test"], "test.txt"))).rejects.toThrow() - }) + describe("uploadForDuplication", () => { + it("should resolve successfully", async () => { + await expect(uploadForDuplication(new File(["test"], "test.txt"))).resolves.not.toThrow() }) - describe("getDuplicationRecords", () => { - it("should resolve successfully", async () => { - await expect(getDuplicationRecords()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(uploadForDuplication(new File(["test"], "test.txt"))).rejects.toThrow() + }) + }) - await expect(getDuplicationRecords()).rejects.toThrow() - }) + describe("getDuplicationRecords", () => { + it("should resolve successfully", async () => { + await expect(getDuplicationRecords()).resolves.not.toThrow() }) - describe("getDuplicationDetail", () => { - it("should resolve successfully", async () => { - await expect(getDuplicationDetail("test-recordId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getDuplicationRecords()).rejects.toThrow() + }) + }) - await expect(getDuplicationDetail("test-recordId")).rejects.toThrow() - }) + describe("getDuplicationDetail", () => { + it("should resolve successfully", async () => { + await expect(getDuplicationDetail("test-recordId")).resolves.not.toThrow() }) - describe("deleteDuplicationRecord", () => { - it("should resolve successfully", async () => { - await expect(deleteDuplicationRecord("test-recordId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getDuplicationDetail("test-recordId")).rejects.toThrow() + }) + }) - await expect(deleteDuplicationRecord("test-recordId")).rejects.toThrow() - }) + describe("deleteDuplicationRecord", () => { + it("should resolve successfully", async () => { + await expect(deleteDuplicationRecord("test-recordId")).resolves.not.toThrow() }) - describe("retryDuplication", () => { - it("should resolve successfully", async () => { - await expect(retryDuplication("test-recordId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(retryDuplication("test-recordId")).rejects.toThrow() - }) + await expect(deleteDuplicationRecord("test-recordId")).rejects.toThrow() }) + }) + + describe("retryDuplication", () => { + it("should resolve successfully", async () => { + await expect(retryDuplication("test-recordId")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(retryDuplication("test-recordId")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/editPlans.test.ts b/apps/web/src/test/api/editPlans.test.ts index 49f2ee0fe..10e287dc7 100644 --- a/apps/web/src/test/api/editPlans.test.ts +++ b/apps/web/src/test/api/editPlans.test.ts @@ -1,5 +1,29 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getEditPlans, getEditPlan, createEditPlan, updateEditPlan, deleteEditPlan, generateEditPlan, getGenerationStatus, aiRecommendClips, generateCover, getEditPlanGenerations, getGenerationTaskResults, cancelGeneration, getEditPlanClips, getEditPlanClip, createEditPlanClip, updateEditPlanClip, deleteEditPlanClip, reorderEditPlanClips, batchDeleteEditPlanClips, createClipsFromAssets, copyEditPlan, getMediaAssets, getMediaAsset } from "@/api/editPlans" +import { + getEditPlans, + getEditPlan, + createEditPlan, + updateEditPlan, + deleteEditPlan, + generateEditPlan, + getGenerationStatus, + aiRecommendClips, + generateCover, + getEditPlanGenerations, + getGenerationTaskResults, + cancelGeneration, + getEditPlanClips, + getEditPlanClip, + createEditPlanClip, + updateEditPlanClip, + deleteEditPlanClip, + reorderEditPlanClips, + batchDeleteEditPlanClips, + createClipsFromAssets, + copyEditPlan, + getMediaAssets, + getMediaAsset, +} from "@/api/editPlans" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +44,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("editPlans API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,371 +54,371 @@ describe("editPlans API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getEditPlans", () => { - it("should resolve successfully", async () => { - await expect(getEditPlans("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getEditPlans("test-params?")).rejects.toThrow() - }) + describe("getEditPlans", () => { + it("should resolve successfully", async () => { + await expect(getEditPlans("test-params?")).resolves.not.toThrow() }) - describe("getEditPlan", () => { - it("should resolve successfully", async () => { - await expect(getEditPlan("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditPlans("test-params?")).rejects.toThrow() + }) + }) - await expect(getEditPlan("test-planId")).rejects.toThrow() - }) + describe("getEditPlan", () => { + it("should resolve successfully", async () => { + await expect(getEditPlan("test-planId")).resolves.not.toThrow() }) - describe("createEditPlan", () => { - it("should resolve successfully", async () => { - await expect(createEditPlan({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditPlan("test-planId")).rejects.toThrow() + }) + }) - await expect(createEditPlan({ name: "test-item" })).rejects.toThrow() - }) + describe("createEditPlan", () => { + it("should resolve successfully", async () => { + await expect(createEditPlan({ name: "test-item" })).resolves.not.toThrow() }) - describe("updateEditPlan", () => { - it("should resolve successfully", async () => { - await expect(updateEditPlan("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createEditPlan({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(updateEditPlan("test-planId")).rejects.toThrow() - }) + describe("updateEditPlan", () => { + it("should resolve successfully", async () => { + await expect(updateEditPlan("test-planId")).resolves.not.toThrow() }) - describe("deleteEditPlan", () => { - it("should resolve successfully", async () => { - await expect(deleteEditPlan("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateEditPlan("test-planId")).rejects.toThrow() + }) + }) - await expect(deleteEditPlan("test-planId")).rejects.toThrow() - }) + describe("deleteEditPlan", () => { + it("should resolve successfully", async () => { + await expect(deleteEditPlan("test-planId")).resolves.not.toThrow() }) - describe("generateEditPlan", () => { - it("should resolve successfully", async () => { - await expect(generateEditPlan("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteEditPlan("test-planId")).rejects.toThrow() + }) + }) - await expect(generateEditPlan("test-planId")).rejects.toThrow() - }) + describe("generateEditPlan", () => { + it("should resolve successfully", async () => { + await expect(generateEditPlan("test-planId")).resolves.not.toThrow() }) - describe("getGenerationStatus", () => { - it("should resolve successfully", async () => { - await expect(getGenerationStatus("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(generateEditPlan("test-planId")).rejects.toThrow() + }) + }) - await expect(getGenerationStatus("test-planId")).rejects.toThrow() - }) + describe("getGenerationStatus", () => { + it("should resolve successfully", async () => { + await expect(getGenerationStatus("test-planId")).resolves.not.toThrow() }) - describe("aiRecommendClips", () => { - it("should resolve successfully", async () => { - await expect(aiRecommendClips("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getGenerationStatus("test-planId")).rejects.toThrow() + }) + }) - await expect(aiRecommendClips("test-planId")).rejects.toThrow() - }) + describe("aiRecommendClips", () => { + it("should resolve successfully", async () => { + await expect(aiRecommendClips("test-planId")).resolves.not.toThrow() }) - describe("generateCover", () => { - it("should resolve successfully", async () => { - await expect(generateCover("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(aiRecommendClips("test-planId")).rejects.toThrow() + }) + }) - await expect(generateCover("test-planId")).rejects.toThrow() - }) + describe("generateCover", () => { + it("should resolve successfully", async () => { + await expect(generateCover("test-planId")).resolves.not.toThrow() }) - describe("getEditPlanGenerations", () => { - it("should resolve successfully", async () => { - await expect(getEditPlanGenerations("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(generateCover("test-planId")).rejects.toThrow() + }) + }) - await expect(getEditPlanGenerations("test-planId")).rejects.toThrow() - }) + describe("getEditPlanGenerations", () => { + it("should resolve successfully", async () => { + await expect(getEditPlanGenerations("test-planId")).resolves.not.toThrow() }) - describe("getGenerationTaskResults", () => { - it("should resolve successfully", async () => { - await expect(getGenerationTaskResults("test-taskId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditPlanGenerations("test-planId")).rejects.toThrow() + }) + }) - await expect(getGenerationTaskResults("test-taskId")).rejects.toThrow() - }) + describe("getGenerationTaskResults", () => { + it("should resolve successfully", async () => { + await expect(getGenerationTaskResults("test-taskId")).resolves.not.toThrow() }) - describe("cancelGeneration", () => { - it("should resolve successfully", async () => { - await expect(cancelGeneration("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getGenerationTaskResults("test-taskId")).rejects.toThrow() + }) + }) - await expect(cancelGeneration("test-planId")).rejects.toThrow() - }) + describe("cancelGeneration", () => { + it("should resolve successfully", async () => { + await expect(cancelGeneration("test-planId")).resolves.not.toThrow() }) - describe("getEditPlanClips", () => { - it("should resolve successfully", async () => { - await expect(getEditPlanClips("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(cancelGeneration("test-planId")).rejects.toThrow() + }) + }) - await expect(getEditPlanClips("test-planId")).rejects.toThrow() - }) + describe("getEditPlanClips", () => { + it("should resolve successfully", async () => { + await expect(getEditPlanClips("test-planId")).resolves.not.toThrow() }) - describe("getEditPlanClip", () => { - it("should resolve successfully", async () => { - await expect(getEditPlanClip("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditPlanClips("test-planId")).rejects.toThrow() + }) + }) - await expect(getEditPlanClip("test-planId")).rejects.toThrow() - }) + describe("getEditPlanClip", () => { + it("should resolve successfully", async () => { + await expect(getEditPlanClip("test-planId")).resolves.not.toThrow() }) - describe("createEditPlanClip", () => { - it("should resolve successfully", async () => { - await expect(createEditPlanClip("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditPlanClip("test-planId")).rejects.toThrow() + }) + }) - await expect(createEditPlanClip("test-planId")).rejects.toThrow() - }) + describe("createEditPlanClip", () => { + it("should resolve successfully", async () => { + await expect(createEditPlanClip("test-planId")).resolves.not.toThrow() }) - describe("updateEditPlanClip", () => { - it("should resolve successfully", async () => { - await expect(updateEditPlanClip("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createEditPlanClip("test-planId")).rejects.toThrow() + }) + }) - await expect(updateEditPlanClip("test-planId")).rejects.toThrow() - }) + describe("updateEditPlanClip", () => { + it("should resolve successfully", async () => { + await expect(updateEditPlanClip("test-planId")).resolves.not.toThrow() }) - describe("deleteEditPlanClip", () => { - it("should resolve successfully", async () => { - await expect(deleteEditPlanClip("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateEditPlanClip("test-planId")).rejects.toThrow() + }) + }) - await expect(deleteEditPlanClip("test-planId")).rejects.toThrow() - }) + describe("deleteEditPlanClip", () => { + it("should resolve successfully", async () => { + await expect(deleteEditPlanClip("test-planId")).resolves.not.toThrow() }) - describe("reorderEditPlanClips", () => { - it("should resolve successfully", async () => { - await expect(reorderEditPlanClips("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteEditPlanClip("test-planId")).rejects.toThrow() + }) + }) - await expect(reorderEditPlanClips("test-planId")).rejects.toThrow() - }) + describe("reorderEditPlanClips", () => { + it("should resolve successfully", async () => { + await expect(reorderEditPlanClips("test-planId")).resolves.not.toThrow() }) - describe("batchDeleteEditPlanClips", () => { - it("should resolve successfully", async () => { - await expect(batchDeleteEditPlanClips("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(reorderEditPlanClips("test-planId")).rejects.toThrow() + }) + }) - await expect(batchDeleteEditPlanClips("test-planId")).rejects.toThrow() - }) + describe("batchDeleteEditPlanClips", () => { + it("should resolve successfully", async () => { + await expect(batchDeleteEditPlanClips("test-planId")).resolves.not.toThrow() }) - describe("createClipsFromAssets", () => { - it("should resolve successfully", async () => { - await expect(createClipsFromAssets("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(batchDeleteEditPlanClips("test-planId")).rejects.toThrow() + }) + }) - await expect(createClipsFromAssets("test-planId")).rejects.toThrow() - }) + describe("createClipsFromAssets", () => { + it("should resolve successfully", async () => { + await expect(createClipsFromAssets("test-planId")).resolves.not.toThrow() }) - describe("copyEditPlan", () => { - it("should resolve successfully", async () => { - await expect(copyEditPlan("test-planId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createClipsFromAssets("test-planId")).rejects.toThrow() + }) + }) - await expect(copyEditPlan("test-planId")).rejects.toThrow() - }) + describe("copyEditPlan", () => { + it("should resolve successfully", async () => { + await expect(copyEditPlan("test-planId")).resolves.not.toThrow() }) - describe("getMediaAssets", () => { - it("should resolve successfully", async () => { - await expect(getMediaAssets("test-libraryId?")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(copyEditPlan("test-planId")).rejects.toThrow() + }) + }) - await expect(getMediaAssets("test-libraryId?")).rejects.toThrow() - }) + describe("getMediaAssets", () => { + it("should resolve successfully", async () => { + await expect(getMediaAssets("test-libraryId?")).resolves.not.toThrow() }) - describe("getMediaAsset", () => { - it("should resolve successfully", async () => { - await expect(getMediaAsset("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getMediaAsset("test-id")).rejects.toThrow() - }) + await expect(getMediaAssets("test-libraryId?")).rejects.toThrow() }) + }) + + describe("getMediaAsset", () => { + it("should resolve successfully", async () => { + await expect(getMediaAsset("test-id")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(getMediaAsset("test-id")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/editingPlanner.test.ts b/apps/web/src/test/api/editingPlanner.test.ts index b267730c6..e7e16e39a 100644 --- a/apps/web/src/test/api/editingPlanner.test.ts +++ b/apps/web/src/test/api/editingPlanner.test.ts @@ -1,5 +1,13 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getEditingTemplates, getEditingTemplate, createEditingTemplate, updateEditingTemplate, deleteEditingTemplate, getTemplateCategories, generateFromTemplate } from "@/api/editingPlanner" +import { + getEditingTemplates, + getEditingTemplate, + createEditingTemplate, + updateEditingTemplate, + deleteEditingTemplate, + getTemplateCategories, + generateFromTemplate, +} from "@/api/editingPlanner" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +28,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("editingPlanner API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,115 +38,115 @@ describe("editingPlanner API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getEditingTemplates", () => { - it("should resolve successfully", async () => { - await expect(getEditingTemplates("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getEditingTemplates("test-params?")).rejects.toThrow() - }) + describe("getEditingTemplates", () => { + it("should resolve successfully", async () => { + await expect(getEditingTemplates("test-params?")).resolves.not.toThrow() }) - describe("getEditingTemplate", () => { - it("should resolve successfully", async () => { - await expect(getEditingTemplate("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditingTemplates("test-params?")).rejects.toThrow() + }) + }) - await expect(getEditingTemplate("test-id")).rejects.toThrow() - }) + describe("getEditingTemplate", () => { + it("should resolve successfully", async () => { + await expect(getEditingTemplate("test-id")).resolves.not.toThrow() }) - describe("createEditingTemplate", () => { - it("should resolve successfully", async () => { - await expect(createEditingTemplate({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getEditingTemplate("test-id")).rejects.toThrow() + }) + }) - await expect(createEditingTemplate({ name: "test-item" })).rejects.toThrow() - }) + describe("createEditingTemplate", () => { + it("should resolve successfully", async () => { + await expect(createEditingTemplate({ name: "test-item" })).resolves.not.toThrow() }) - describe("updateEditingTemplate", () => { - it("should resolve successfully", async () => { - await expect(updateEditingTemplate("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createEditingTemplate({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(updateEditingTemplate("test-id")).rejects.toThrow() - }) + describe("updateEditingTemplate", () => { + it("should resolve successfully", async () => { + await expect(updateEditingTemplate("test-id")).resolves.not.toThrow() }) - describe("deleteEditingTemplate", () => { - it("should resolve successfully", async () => { - await expect(deleteEditingTemplate("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateEditingTemplate("test-id")).rejects.toThrow() + }) + }) - await expect(deleteEditingTemplate("test-id")).rejects.toThrow() - }) + describe("deleteEditingTemplate", () => { + it("should resolve successfully", async () => { + await expect(deleteEditingTemplate("test-id")).resolves.not.toThrow() }) - describe("getTemplateCategories", () => { - it("should resolve successfully", async () => { - await expect(getTemplateCategories()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteEditingTemplate("test-id")).rejects.toThrow() + }) + }) - await expect(getTemplateCategories()).rejects.toThrow() - }) + describe("getTemplateCategories", () => { + it("should resolve successfully", async () => { + await expect(getTemplateCategories()).resolves.not.toThrow() }) - describe("generateFromTemplate", () => { - it("should resolve successfully", async () => { - await expect(generateFromTemplate("test-templateId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(generateFromTemplate("test-templateId")).rejects.toThrow() - }) + await expect(getTemplateCategories()).rejects.toThrow() }) + }) + + describe("generateFromTemplate", () => { + it("should resolve successfully", async () => { + await expect(generateFromTemplate("test-templateId")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(generateFromTemplate("test-templateId")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/products.test.ts b/apps/web/src/test/api/products.test.ts index a8ded3db9..55653c129 100644 --- a/apps/web/src/test/api/products.test.ts +++ b/apps/web/src/test/api/products.test.ts @@ -1,5 +1,13 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getProducts, getProduct, deleteProduct, getProductDownloadUrl, updateReviewStatus, batchDownload, getBatchDownloadStatus } from "@/api/products" +import { + getProducts, + getProduct, + deleteProduct, + getProductDownloadUrl, + updateReviewStatus, + batchDownload, + getBatchDownloadStatus, +} from "@/api/products" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +28,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("products API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,99 +38,105 @@ describe("products API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getProducts", () => { - it("should resolve successfully", async () => { - await expect(getProducts("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getProducts("test-params?")).rejects.toThrow() - }) + describe("getProducts", () => { + it("should resolve successfully", async () => { + await expect(getProducts("test-params?")).resolves.not.toThrow() }) - describe("getProduct", () => { - it("should resolve successfully", async () => { - await expect(getProduct("test-productId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getProducts("test-params?")).rejects.toThrow() + }) + }) - await expect(getProduct("test-productId")).rejects.toThrow() - }) + describe("getProduct", () => { + it("should resolve successfully", async () => { + await expect(getProduct("test-productId")).resolves.not.toThrow() }) - describe("deleteProduct", () => { - it("should resolve successfully", async () => { - await expect(deleteProduct("test-productId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getProduct("test-productId")).rejects.toThrow() + }) + }) - await expect(deleteProduct("test-productId")).rejects.toThrow() - }) + describe("deleteProduct", () => { + it("should resolve successfully", async () => { + await expect(deleteProduct("test-productId")).resolves.not.toThrow() }) - describe("getProductDownloadUrl", () => { - it("should resolve successfully", async () => { - mockGet.mockResolvedValue({ data: { id: "test-productId", name: "测试视频", download_url: "https://example.com/video.mp4" } }) - await expect(getProductDownloadUrl("test-productId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteProduct("test-productId")).rejects.toThrow() + }) + }) - await expect(getProductDownloadUrl("test-productId")).rejects.toThrow() + describe("getProductDownloadUrl", () => { + it("should resolve successfully", async () => { + mockGet.mockResolvedValue({ + data: { + id: "test-productId", + name: "测试视频", + download_url: "https://example.com/video.mp4", + }, }) + await expect(getProductDownloadUrl("test-productId")).resolves.not.toThrow() }) - describe("updateReviewStatus", () => { - it("should resolve successfully", async () => { - await expect(updateReviewStatus("test-productId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getProductDownloadUrl("test-productId")).rejects.toThrow() + }) + }) - await expect(updateReviewStatus("test-productId")).rejects.toThrow() - }) + describe("updateReviewStatus", () => { + it("should resolve successfully", async () => { + await expect(updateReviewStatus("test-productId")).resolves.not.toThrow() }) - describe("batchDownload", () => { - it("should resolve with mock job_id", async () => { - const result = await batchDownload(["item-1", "item-2"]) - expect(result.job_id).toBeDefined() - }) - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - describe("getBatchDownloadStatus", () => { - it("should resolve with mock status", async () => { - const result = await getBatchDownloadStatus("test-jobId") - expect(result.job_id).toBe("test-jobId") - expect(result.status).toBeDefined() - }) + await expect(updateReviewStatus("test-productId")).rejects.toThrow() }) + }) + + describe("batchDownload", () => { + it("should resolve with mock job_id", async () => { + const result = await batchDownload(["item-1", "item-2"]) + expect(result.job_id).toBeDefined() + }) + }) + + describe("getBatchDownloadStatus", () => { + it("should resolve with mock status", async () => { + const result = await getBatchDownloadStatus("test-jobId") + expect(result.job_id).toBe("test-jobId") + expect(result.status).toBeDefined() + }) + }) }) diff --git a/apps/web/src/test/api/projects.test.ts b/apps/web/src/test/api/projects.test.ts index 658f3613a..8ce49cf2e 100644 --- a/apps/web/src/test/api/projects.test.ts +++ b/apps/web/src/test/api/projects.test.ts @@ -20,7 +20,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("projects API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,51 +30,51 @@ describe("projects API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getProjects", () => { - it("should resolve successfully", async () => { - await expect(getProjects()).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getProjects()).rejects.toThrow() - }) + describe("getProjects", () => { + it("should resolve successfully", async () => { + await expect(getProjects()).resolves.not.toThrow() }) - describe("createProject", () => { - it("should resolve successfully", async () => { - await expect(createProject({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getProjects()).rejects.toThrow() + }) + }) - await expect(createProject({ name: "test-item" })).rejects.toThrow() - }) + describe("createProject", () => { + it("should resolve successfully", async () => { + await expect(createProject({ name: "test-item" })).resolves.not.toThrow() }) - describe("getOrCreateDefaultProject", () => { - it("should resolve successfully", async () => { - await expect(getOrCreateDefaultProject()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getOrCreateDefaultProject()).rejects.toThrow() - }) + await expect(createProject({ name: "test-item" })).rejects.toThrow() }) + }) + + describe("getOrCreateDefaultProject", () => { + it("should resolve successfully", async () => { + await expect(getOrCreateDefaultProject()).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(getOrCreateDefaultProject()).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/subscription.test.ts b/apps/web/src/test/api/subscription.test.ts index f9260d6cd..3fc15dd31 100644 --- a/apps/web/src/test/api/subscription.test.ts +++ b/apps/web/src/test/api/subscription.test.ts @@ -1,5 +1,11 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getCurrentSubscription, getBillingRecords, changePlan, cancelSubscription, toggleAutoRenew } from "@/api/subscription" +import { + getCurrentSubscription, + getBillingRecords, + changePlan, + cancelSubscription, + toggleAutoRenew, +} from "@/api/subscription" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +26,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("subscription API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,83 +36,83 @@ describe("subscription API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getCurrentSubscription", () => { - it("should resolve successfully", async () => { - await expect(getCurrentSubscription()).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getCurrentSubscription()).rejects.toThrow() - }) + describe("getCurrentSubscription", () => { + it("should resolve successfully", async () => { + await expect(getCurrentSubscription()).resolves.not.toThrow() }) - describe("getBillingRecords", () => { - it("should resolve successfully", async () => { - await expect(getBillingRecords()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getCurrentSubscription()).rejects.toThrow() + }) + }) - await expect(getBillingRecords()).rejects.toThrow() - }) + describe("getBillingRecords", () => { + it("should resolve successfully", async () => { + await expect(getBillingRecords()).resolves.not.toThrow() }) - describe("changePlan", () => { - it("should resolve successfully", async () => { - await expect(changePlan("test-request")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getBillingRecords()).rejects.toThrow() + }) + }) - await expect(changePlan("test-request")).rejects.toThrow() - }) + describe("changePlan", () => { + it("should resolve successfully", async () => { + await expect(changePlan("test-request")).resolves.not.toThrow() }) - describe("cancelSubscription", () => { - it("should resolve successfully", async () => { - await expect(cancelSubscription()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(changePlan("test-request")).rejects.toThrow() + }) + }) - await expect(cancelSubscription()).rejects.toThrow() - }) + describe("cancelSubscription", () => { + it("should resolve successfully", async () => { + await expect(cancelSubscription()).resolves.not.toThrow() }) - describe("toggleAutoRenew", () => { - it("should resolve successfully", async () => { - await expect(toggleAutoRenew("test-enabled")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(toggleAutoRenew("test-enabled")).rejects.toThrow() - }) + await expect(cancelSubscription()).rejects.toThrow() }) + }) + + describe("toggleAutoRenew", () => { + it("should resolve successfully", async () => { + await expect(toggleAutoRenew("test-enabled")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(toggleAutoRenew("test-enabled")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/tags.test.ts b/apps/web/src/test/api/tags.test.ts index 041b4a62b..996040ec6 100644 --- a/apps/web/src/test/api/tags.test.ts +++ b/apps/web/src/test/api/tags.test.ts @@ -20,7 +20,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("tags API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,83 +30,83 @@ describe("tags API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getTags", () => { - it("should resolve successfully", async () => { - await expect(getTags()).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getTags()).rejects.toThrow() - }) + describe("getTags", () => { + it("should resolve successfully", async () => { + await expect(getTags()).resolves.not.toThrow() }) - describe("createTag", () => { - it("should resolve successfully", async () => { - await expect(createTag("test-name")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTags()).rejects.toThrow() + }) + }) - await expect(createTag("test-name")).rejects.toThrow() - }) + describe("createTag", () => { + it("should resolve successfully", async () => { + await expect(createTag("test-name")).resolves.not.toThrow() }) - describe("deleteTag", () => { - it("should resolve successfully", async () => { - await expect(deleteTag("test-tagId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createTag("test-name")).rejects.toThrow() + }) + }) - await expect(deleteTag("test-tagId")).rejects.toThrow() - }) + describe("deleteTag", () => { + it("should resolve successfully", async () => { + await expect(deleteTag("test-tagId")).resolves.not.toThrow() }) - describe("tagAsset", () => { - it("should resolve successfully", async () => { - await expect(tagAsset("test-assetId", ["tag-1", "tag-2"])).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteTag("test-tagId")).rejects.toThrow() + }) + }) - await expect(tagAsset("test-assetId")).rejects.toThrow() - }) + describe("tagAsset", () => { + it("should resolve successfully", async () => { + await expect(tagAsset("test-assetId", ["tag-1", "tag-2"])).resolves.not.toThrow() }) - describe("untagAsset", () => { - it("should resolve successfully", async () => { - await expect(untagAsset("test-assetId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(untagAsset("test-assetId")).rejects.toThrow() - }) + await expect(tagAsset("test-assetId")).rejects.toThrow() }) + }) + + describe("untagAsset", () => { + it("should resolve successfully", async () => { + await expect(untagAsset("test-assetId")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(untagAsset("test-assetId")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/tasks.test.ts b/apps/web/src/test/api/tasks.test.ts index 5ee833857..5c37aa30b 100644 --- a/apps/web/src/test/api/tasks.test.ts +++ b/apps/web/src/test/api/tasks.test.ts @@ -20,7 +20,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("tasks API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,83 +30,83 @@ describe("tasks API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("createGenerationTask", () => { - it("should resolve successfully", async () => { - await expect(createGenerationTask({ page: 1 })).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(createGenerationTask({ page: 1 })).rejects.toThrow() - }) + describe("createGenerationTask", () => { + it("should resolve successfully", async () => { + await expect(createGenerationTask({ page: 1 })).resolves.not.toThrow() }) - describe("getTasks", () => { - it("should resolve successfully", async () => { - await expect(getTasks("test-params?")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createGenerationTask({ page: 1 })).rejects.toThrow() + }) + }) - await expect(getTasks("test-params?")).rejects.toThrow() - }) + describe("getTasks", () => { + it("should resolve successfully", async () => { + await expect(getTasks("test-params?")).resolves.not.toThrow() }) - describe("getUserTasks", () => { - it("should resolve successfully", async () => { - await expect(getUserTasks()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTasks("test-params?")).rejects.toThrow() + }) + }) - await expect(getUserTasks()).rejects.toThrow() - }) + describe("getUserTasks", () => { + it("should resolve successfully", async () => { + await expect(getUserTasks()).resolves.not.toThrow() }) - describe("getTask", () => { - it("should resolve successfully", async () => { - await expect(getTask("test-taskId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getUserTasks()).rejects.toThrow() + }) + }) - await expect(getTask("test-taskId")).rejects.toThrow() - }) + describe("getTask", () => { + it("should resolve successfully", async () => { + await expect(getTask("test-taskId")).resolves.not.toThrow() }) - describe("retryTask", () => { - it("should resolve successfully", async () => { - await expect(retryTask("test-taskId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(retryTask("test-taskId")).rejects.toThrow() - }) + await expect(getTask("test-taskId")).rejects.toThrow() }) + }) + + describe("retryTask", () => { + it("should resolve successfully", async () => { + await expect(retryTask("test-taskId")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(retryTask("test-taskId")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/templates.test.ts b/apps/web/src/test/api/templates.test.ts index a0628f21d..973093483 100644 --- a/apps/web/src/test/api/templates.test.ts +++ b/apps/web/src/test/api/templates.test.ts @@ -1,5 +1,12 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getTemplates, getTemplatesList, getTemplate, toggleFavoriteTemplate, copyTemplate, generateFromTemplate } from "@/api/templates" +import { + getTemplates, + getTemplatesList, + getTemplate, + toggleFavoriteTemplate, + copyTemplate, + generateFromTemplate, +} from "@/api/templates" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +27,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("templates API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,99 +37,99 @@ describe("templates API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getTemplates", () => { - it("should resolve successfully", async () => { - await expect(getTemplates("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getTemplates("test-params?")).rejects.toThrow() - }) + describe("getTemplates", () => { + it("should resolve successfully", async () => { + await expect(getTemplates("test-params?")).resolves.not.toThrow() }) - describe("getTemplatesList", () => { - it("should resolve successfully", async () => { - await expect(getTemplatesList()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTemplates("test-params?")).rejects.toThrow() + }) + }) - await expect(getTemplatesList()).rejects.toThrow() - }) + describe("getTemplatesList", () => { + it("should resolve successfully", async () => { + await expect(getTemplatesList()).resolves.not.toThrow() }) - describe("getTemplate", () => { - it("should resolve successfully", async () => { - await expect(getTemplate("test-templateId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTemplatesList()).rejects.toThrow() + }) + }) - await expect(getTemplate("test-templateId")).rejects.toThrow() - }) + describe("getTemplate", () => { + it("should resolve successfully", async () => { + await expect(getTemplate("test-templateId")).resolves.not.toThrow() }) - describe("toggleFavoriteTemplate", () => { - it("should resolve successfully", async () => { - await expect(toggleFavoriteTemplate("test-templateId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTemplate("test-templateId")).rejects.toThrow() + }) + }) - await expect(toggleFavoriteTemplate("test-templateId")).rejects.toThrow() - }) + describe("toggleFavoriteTemplate", () => { + it("should resolve successfully", async () => { + await expect(toggleFavoriteTemplate("test-templateId")).resolves.not.toThrow() }) - describe("copyTemplate", () => { - it("should resolve successfully", async () => { - await expect(copyTemplate("test-templateId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(toggleFavoriteTemplate("test-templateId")).rejects.toThrow() + }) + }) - await expect(copyTemplate("test-templateId")).rejects.toThrow() - }) + describe("copyTemplate", () => { + it("should resolve successfully", async () => { + await expect(copyTemplate("test-templateId")).resolves.not.toThrow() }) - describe("generateFromTemplate", () => { - it("should resolve successfully", async () => { - await expect(generateFromTemplate("test-templateId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(generateFromTemplate("test-templateId")).rejects.toThrow() - }) + await expect(copyTemplate("test-templateId")).rejects.toThrow() }) + }) + + describe("generateFromTemplate", () => { + it("should resolve successfully", async () => { + await expect(generateFromTemplate("test-templateId")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(generateFromTemplate("test-templateId")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/titles.test.ts b/apps/web/src/test/api/titles.test.ts index dd19ed25d..3e3bc123a 100644 --- a/apps/web/src/test/api/titles.test.ts +++ b/apps/web/src/test/api/titles.test.ts @@ -20,7 +20,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("titles API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,83 +30,83 @@ describe("titles API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getTitles", () => { - it("should resolve successfully", async () => { - await expect(getTitles()).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getTitles()).rejects.toThrow() - }) + describe("getTitles", () => { + it("should resolve successfully", async () => { + await expect(getTitles()).resolves.not.toThrow() }) - describe("createTitle", () => { - it("should resolve successfully", async () => { - await expect(createTitle({ title: "测试标题", content: "测试内容" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTitles()).rejects.toThrow() + }) + }) - await expect(createTitle({ name: "test-item" })).rejects.toThrow() - }) + describe("createTitle", () => { + it("should resolve successfully", async () => { + await expect(createTitle({ title: "测试标题", content: "测试内容" })).resolves.not.toThrow() }) - describe("updateTitle", () => { - it("should resolve successfully", async () => { - await expect(updateTitle("test-titleId", { title: "新标题" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createTitle({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(updateTitle("test-titleId")).rejects.toThrow() - }) + describe("updateTitle", () => { + it("should resolve successfully", async () => { + await expect(updateTitle("test-titleId", { title: "新标题" })).resolves.not.toThrow() }) - describe("deleteTitle", () => { - it("should resolve successfully", async () => { - await expect(deleteTitle("test-titleId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateTitle("test-titleId")).rejects.toThrow() + }) + }) - await expect(deleteTitle("test-titleId")).rejects.toThrow() - }) + describe("deleteTitle", () => { + it("should resolve successfully", async () => { + await expect(deleteTitle("test-titleId")).resolves.not.toThrow() }) - describe("batchImportTitles", () => { - it("should resolve successfully", async () => { - await expect(batchImportTitles("test-titles")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(batchImportTitles("test-titles")).rejects.toThrow() - }) + await expect(deleteTitle("test-titleId")).rejects.toThrow() }) + }) + + describe("batchImportTitles", () => { + it("should resolve successfully", async () => { + await expect(batchImportTitles("test-titles")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(batchImportTitles("test-titles")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/tts.test.ts b/apps/web/src/test/api/tts.test.ts index a83d623b9..1a65c5bd3 100644 --- a/apps/web/src/test/api/tts.test.ts +++ b/apps/web/src/test/api/tts.test.ts @@ -1,5 +1,14 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { synthesizeSpeech, getTTSJob, getTTSJobStatus, getTTSJobs, saveTtsToLibrary, deleteTTSJob, getTtsVoices, previewTts } from "@/api/tts" +import { + synthesizeSpeech, + getTTSJob, + getTTSJobStatus, + getTTSJobs, + saveTtsToLibrary, + deleteTTSJob, + getTtsVoices, + previewTts, +} from "@/api/tts" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +29,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("tts API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,131 +39,131 @@ describe("tts API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("synthesizeSpeech", () => { - it("should resolve successfully", async () => { - await expect(synthesizeSpeech({ name: "test-item" })).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(synthesizeSpeech({ name: "test-item" })).rejects.toThrow() - }) + describe("synthesizeSpeech", () => { + it("should resolve successfully", async () => { + await expect(synthesizeSpeech({ name: "test-item" })).resolves.not.toThrow() }) - describe("getTTSJob", () => { - it("should resolve successfully", async () => { - await expect(getTTSJob("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(synthesizeSpeech({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(getTTSJob("test-jobId")).rejects.toThrow() - }) + describe("getTTSJob", () => { + it("should resolve successfully", async () => { + await expect(getTTSJob("test-jobId")).resolves.not.toThrow() }) - describe("getTTSJobStatus", () => { - it("should resolve successfully", async () => { - await expect(getTTSJobStatus("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTTSJob("test-jobId")).rejects.toThrow() + }) + }) - await expect(getTTSJobStatus("test-jobId")).rejects.toThrow() - }) + describe("getTTSJobStatus", () => { + it("should resolve successfully", async () => { + await expect(getTTSJobStatus("test-jobId")).resolves.not.toThrow() }) - describe("getTTSJobs", () => { - it("should resolve successfully", async () => { - await expect(getTTSJobs("test-params?")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTTSJobStatus("test-jobId")).rejects.toThrow() + }) + }) - await expect(getTTSJobs("test-params?")).rejects.toThrow() - }) + describe("getTTSJobs", () => { + it("should resolve successfully", async () => { + await expect(getTTSJobs("test-params?")).resolves.not.toThrow() }) - describe("saveTtsToLibrary", () => { - it("should resolve successfully", async () => { - await expect(saveTtsToLibrary("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getTTSJobs("test-params?")).rejects.toThrow() + }) + }) - await expect(saveTtsToLibrary("test-jobId")).rejects.toThrow() - }) + describe("saveTtsToLibrary", () => { + it("should resolve successfully", async () => { + await expect(saveTtsToLibrary("test-jobId")).resolves.not.toThrow() }) - describe("deleteTTSJob", () => { - it("should resolve successfully", async () => { - await expect(deleteTTSJob("test-jobId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(saveTtsToLibrary("test-jobId")).rejects.toThrow() + }) + }) - await expect(deleteTTSJob("test-jobId")).rejects.toThrow() - }) + describe("deleteTTSJob", () => { + it("should resolve successfully", async () => { + await expect(deleteTTSJob("test-jobId")).resolves.not.toThrow() }) - describe("getTtsVoices", () => { - it("should resolve successfully", async () => { - await expect(getTtsVoices()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteTTSJob("test-jobId")).rejects.toThrow() + }) + }) - await expect(getTtsVoices()).rejects.toThrow() - }) + describe("getTtsVoices", () => { + it("should resolve successfully", async () => { + await expect(getTtsVoices()).resolves.not.toThrow() }) - describe("previewTts", () => { - it("should resolve successfully", async () => { - await expect(previewTts({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(previewTts({ name: "test-item" })).rejects.toThrow() - }) + await expect(getTtsVoices()).rejects.toThrow() }) + }) + + describe("previewTts", () => { + it("should resolve successfully", async () => { + await expect(previewTts({ name: "test-item" })).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(previewTts({ name: "test-item" })).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/voiceClone.test.ts b/apps/web/src/test/api/voiceClone.test.ts index 705acf8ba..ce4cdac8b 100644 --- a/apps/web/src/test/api/voiceClone.test.ts +++ b/apps/web/src/test/api/voiceClone.test.ts @@ -1,5 +1,14 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { getVoiceClones, getVoiceClonesWithTotal, getVoiceCloneDetail, createVoiceClone, deleteVoiceClone, updateVoiceClone, getVoiceCloneStatus, retryVoiceClone } from "@/api/voiceClone" +import { + getVoiceClones, + getVoiceClonesWithTotal, + getVoiceCloneDetail, + createVoiceClone, + deleteVoiceClone, + updateVoiceClone, + getVoiceCloneStatus, + retryVoiceClone, +} from "@/api/voiceClone" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +29,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("voiceClone API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,131 +39,131 @@ describe("voiceClone API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("getVoiceClones", () => { - it("should resolve successfully", async () => { - await expect(getVoiceClones("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(getVoiceClones("test-params?")).rejects.toThrow() - }) + describe("getVoiceClones", () => { + it("should resolve successfully", async () => { + await expect(getVoiceClones("test-params?")).resolves.not.toThrow() }) - describe("getVoiceClonesWithTotal", () => { - it("should resolve successfully", async () => { - await expect(getVoiceClonesWithTotal("test-params?")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getVoiceClones("test-params?")).rejects.toThrow() + }) + }) - await expect(getVoiceClonesWithTotal("test-params?")).rejects.toThrow() - }) + describe("getVoiceClonesWithTotal", () => { + it("should resolve successfully", async () => { + await expect(getVoiceClonesWithTotal("test-params?")).resolves.not.toThrow() }) - describe("getVoiceCloneDetail", () => { - it("should resolve successfully", async () => { - await expect(getVoiceCloneDetail("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getVoiceClonesWithTotal("test-params?")).rejects.toThrow() + }) + }) - await expect(getVoiceCloneDetail("test-id")).rejects.toThrow() - }) + describe("getVoiceCloneDetail", () => { + it("should resolve successfully", async () => { + await expect(getVoiceCloneDetail("test-id")).resolves.not.toThrow() }) - describe("createVoiceClone", () => { - it("should resolve successfully", async () => { - await expect(createVoiceClone({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getVoiceCloneDetail("test-id")).rejects.toThrow() + }) + }) - await expect(createVoiceClone({ name: "test-item" })).rejects.toThrow() - }) + describe("createVoiceClone", () => { + it("should resolve successfully", async () => { + await expect(createVoiceClone({ name: "test-item" })).resolves.not.toThrow() }) - describe("deleteVoiceClone", () => { - it("should resolve successfully", async () => { - await expect(deleteVoiceClone("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createVoiceClone({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(deleteVoiceClone("test-id")).rejects.toThrow() - }) + describe("deleteVoiceClone", () => { + it("should resolve successfully", async () => { + await expect(deleteVoiceClone("test-id")).resolves.not.toThrow() }) - describe("updateVoiceClone", () => { - it("should resolve successfully", async () => { - await expect(updateVoiceClone("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(deleteVoiceClone("test-id")).rejects.toThrow() + }) + }) - await expect(updateVoiceClone("test-id")).rejects.toThrow() - }) + describe("updateVoiceClone", () => { + it("should resolve successfully", async () => { + await expect(updateVoiceClone("test-id")).resolves.not.toThrow() }) - describe("getVoiceCloneStatus", () => { - it("should resolve successfully", async () => { - await expect(getVoiceCloneStatus("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateVoiceClone("test-id")).rejects.toThrow() + }) + }) - await expect(getVoiceCloneStatus("test-id")).rejects.toThrow() - }) + describe("getVoiceCloneStatus", () => { + it("should resolve successfully", async () => { + await expect(getVoiceCloneStatus("test-id")).resolves.not.toThrow() }) - describe("retryVoiceClone", () => { - it("should resolve successfully", async () => { - await expect(retryVoiceClone("test-id")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(retryVoiceClone("test-id")).rejects.toThrow() - }) + await expect(getVoiceCloneStatus("test-id")).rejects.toThrow() }) + }) + + describe("retryVoiceClone", () => { + it("should resolve successfully", async () => { + await expect(retryVoiceClone("test-id")).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(retryVoiceClone("test-id")).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/api/voices.test.ts b/apps/web/src/test/api/voices.test.ts index cb25a8df3..e203b3f4b 100644 --- a/apps/web/src/test/api/voices.test.ts +++ b/apps/web/src/test/api/voices.test.ts @@ -1,5 +1,13 @@ import { describe, expect, it, vi, beforeEach } from "vitest" -import { fetchVoices, fetchPresetVoices, getVoices, createVoice, updateVoice, deleteVoice, generateAIVoice } from "@/api/voices" +import { + fetchVoices, + fetchPresetVoices, + getVoices, + createVoice, + updateVoice, + deleteVoice, + generateAIVoice, +} from "@/api/voices" const mockGet = vi.fn() const mockPost = vi.fn() @@ -20,7 +28,6 @@ vi.mock("@/api/client", () => ({ vi.mock("antd", () => ({ message: { error: vi.fn(), success: vi.fn() } })) vi.mock("@/store/authStore", () => ({ useAuthStore: { getState: vi.fn(() => ({})) } })) - describe("voices API", () => { beforeEach(() => { vi.clearAllMocks() @@ -31,115 +38,115 @@ describe("voices API", () => { mockPatch.mockResolvedValue({ data: { success: true, items: [] } }) }) - describe("fetchVoices", () => { - it("should resolve successfully", async () => { - await expect(fetchVoices("test-params?")).resolves.not.toThrow() - }) - - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(fetchVoices("test-params?")).rejects.toThrow() - }) + describe("fetchVoices", () => { + it("should resolve successfully", async () => { + await expect(fetchVoices("test-params?")).resolves.not.toThrow() }) - describe("fetchPresetVoices", () => { - it("should resolve successfully", async () => { - await expect(fetchPresetVoices()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(fetchVoices("test-params?")).rejects.toThrow() + }) + }) - await expect(fetchPresetVoices()).rejects.toThrow() - }) + describe("fetchPresetVoices", () => { + it("should resolve successfully", async () => { + await expect(fetchPresetVoices()).resolves.not.toThrow() }) - describe("getVoices", () => { - it("should resolve successfully", async () => { - await expect(getVoices()).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(fetchPresetVoices()).rejects.toThrow() + }) + }) - await expect(getVoices()).rejects.toThrow() - }) + describe("getVoices", () => { + it("should resolve successfully", async () => { + await expect(getVoices()).resolves.not.toThrow() }) - describe("createVoice", () => { - it("should resolve successfully", async () => { - await expect(createVoice({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(getVoices()).rejects.toThrow() + }) + }) - await expect(createVoice({ name: "test-item" })).rejects.toThrow() - }) + describe("createVoice", () => { + it("should resolve successfully", async () => { + await expect(createVoice({ name: "test-item" })).resolves.not.toThrow() }) - describe("updateVoice", () => { - it("should resolve successfully", async () => { - await expect(updateVoice("test-voiceId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(createVoice({ name: "test-item" })).rejects.toThrow() + }) + }) - await expect(updateVoice("test-voiceId")).rejects.toThrow() - }) + describe("updateVoice", () => { + it("should resolve successfully", async () => { + await expect(updateVoice("test-voiceId")).resolves.not.toThrow() }) - describe("deleteVoice", () => { - it("should resolve successfully", async () => { - await expect(deleteVoice("test-voiceId")).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) + await expect(updateVoice("test-voiceId")).rejects.toThrow() + }) + }) - await expect(deleteVoice("test-voiceId")).rejects.toThrow() - }) + describe("deleteVoice", () => { + it("should resolve successfully", async () => { + await expect(deleteVoice("test-voiceId")).resolves.not.toThrow() }) - describe("generateAIVoice", () => { - it("should resolve successfully", async () => { - await expect(generateAIVoice({ name: "test-item" })).resolves.not.toThrow() - }) + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) - it("should reject on API error", async () => { - mockGet.mockRejectedValue(new Error("Network error")) - mockPost.mockRejectedValue(new Error("Network error")) - mockPut.mockRejectedValue(new Error("Network error")) - mockDelete.mockRejectedValue(new Error("Network error")) - mockPatch.mockRejectedValue(new Error("Network error")) - - await expect(generateAIVoice({ name: "test-item" })).rejects.toThrow() - }) + await expect(deleteVoice("test-voiceId")).rejects.toThrow() }) + }) + + describe("generateAIVoice", () => { + it("should resolve successfully", async () => { + await expect(generateAIVoice({ name: "test-item" })).resolves.not.toThrow() + }) + + it("should reject on API error", async () => { + mockGet.mockRejectedValue(new Error("Network error")) + mockPost.mockRejectedValue(new Error("Network error")) + mockPut.mockRejectedValue(new Error("Network error")) + mockDelete.mockRejectedValue(new Error("Network error")) + mockPatch.mockRejectedValue(new Error("Network error")) + + await expect(generateAIVoice({ name: "test-item" })).rejects.toThrow() + }) + }) }) diff --git a/apps/web/src/test/components/AssetSelector/AssetSelector.test.tsx b/apps/web/src/test/components/AssetSelector/AssetSelector.test.tsx index dbbcf2797..84621d6f8 100644 --- a/apps/web/src/test/components/AssetSelector/AssetSelector.test.tsx +++ b/apps/web/src/test/components/AssetSelector/AssetSelector.test.tsx @@ -78,8 +78,6 @@ describe("AssetSelector", () => { expect(selects.length).toBeGreaterThan(0) }) - - it("应该显示文件大小格式化", () => { render() // 5MB = 5 * 1024 * 1024 bytes @@ -91,5 +89,4 @@ describe("AssetSelector", () => { // 125秒 = 2:05 expect(screen.getByText(/2:05/)).toBeInTheDocument() }) - }) diff --git a/apps/web/src/test/components/layout/AppLayout.test.tsx b/apps/web/src/test/components/layout/AppLayout.test.tsx index 8be47059b..95e9b1eb6 100644 --- a/apps/web/src/test/components/layout/AppLayout.test.tsx +++ b/apps/web/src/test/components/layout/AppLayout.test.tsx @@ -43,9 +43,7 @@ describe("AppLayout", () => { }) it("应该包含正确的语义化结构", () => { - const { container } = renderWithRouter( - 侧边栏} />, - ) + const { container } = renderWithRouter(侧边栏} />) expect(container.querySelector(".xx-app-shell")).toBeInTheDocument() expect(container.querySelector(".xx-app-body")).toBeInTheDocument() expect(container.querySelector(".xx-app-content")).toBeInTheDocument() diff --git a/apps/web/src/test/components/layout/Header.test.tsx b/apps/web/src/test/components/layout/Header.test.tsx index aa6a5f090..6f7d7086a 100644 --- a/apps/web/src/test/components/layout/Header.test.tsx +++ b/apps/web/src/test/components/layout/Header.test.tsx @@ -56,7 +56,9 @@ vi.mock("@ant-design/icons", () => ({ // mock antd components vi.mock("antd", () => ({ Avatar: ({ children, className }: any) => ( - {children} + + {children} + ), Dropdown: ({ children, menu }: any) => (
@@ -71,17 +73,20 @@ vi.mock("antd", () => ({
), Space: ({ children, className }: any) => ( -
{children}
+
+ {children} +
), - Drawer: ({ title, open, children, onClose, placement }: any) => ( + Drawer: ({ title, open, children, onClose, placement }: any) => open ? (
{title}
- + {children}
- ) : null - ), + ) : null, })) // mock CSS @@ -145,7 +150,8 @@ describe("Header", () => { describe("导航", () => { it("点击品牌 Logo 跳转到首页", () => { renderWithRouter("/app/assets") - const brandBtn = screen.getByRole("button", { name: /小虾自动剪辑/ }) || document.querySelector(".xx-brand") + const brandBtn = + screen.getByRole("button", { name: /小虾自动剪辑/ }) || document.querySelector(".xx-brand") if (brandBtn) { fireEvent.click(brandBtn) expect(mockNavigate).toHaveBeenCalledWith("/app/dashboard") diff --git a/apps/web/src/test/components/layout/PageHead.test.tsx b/apps/web/src/test/components/layout/PageHead.test.tsx index 99dcc8e41..88f443ac9 100644 --- a/apps/web/src/test/components/layout/PageHead.test.tsx +++ b/apps/web/src/test/components/layout/PageHead.test.tsx @@ -32,10 +32,7 @@ describe("PageHead", () => { }) it("应该渲染右侧操作区", () => { - renderWithRouter( - 操作按钮} />, - "/app/assets", - ) + renderWithRouter(操作按钮} />, "/app/assets") expect(screen.getByText("操作按钮")).toBeInTheDocument() }) @@ -59,10 +56,7 @@ describe("PageHead", () => { renderWithRouter( , "/app/custom", ) diff --git a/apps/web/src/test/components/layout/Sidebar.test.tsx b/apps/web/src/test/components/layout/Sidebar.test.tsx index ffc6d3fd1..7ab97c8fb 100644 --- a/apps/web/src/test/components/layout/Sidebar.test.tsx +++ b/apps/web/src/test/components/layout/Sidebar.test.tsx @@ -33,9 +33,7 @@ vi.mock("@/config/navigation", () => ({ }, { title: "资源管理", - items: [ - { key: "assets", label: "素材库", path: "/app/assets", icon: A }, - ], + items: [{ key: "assets", label: "素材库", path: "/app/assets", icon: A }], }, ], })) diff --git a/apps/web/src/test/components/ui/Button.test.tsx b/apps/web/src/test/components/ui/Button.test.tsx index 976b543bd..8b9803280 100644 --- a/apps/web/src/test/components/ui/Button.test.tsx +++ b/apps/web/src/test/components/ui/Button.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import Button from '@/components/ui/Button' +import Button from "@/components/ui/Button" describe("Button", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/components/ui/Card.test.tsx b/apps/web/src/test/components/ui/Card.test.tsx index 05aaa1b38..ae42b03ad 100644 --- a/apps/web/src/test/components/ui/Card.test.tsx +++ b/apps/web/src/test/components/ui/Card.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import Card from '@/components/ui/Card' +import Card from "@/components/ui/Card" describe("Card", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/components/ui/Modal.test.tsx b/apps/web/src/test/components/ui/Modal.test.tsx index 617363e09..e26e19b74 100644 --- a/apps/web/src/test/components/ui/Modal.test.tsx +++ b/apps/web/src/test/components/ui/Modal.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import Modal from '@/components/ui/Modal' +import Modal from "@/components/ui/Modal" describe("Modal", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/components/ui/Select.test.tsx b/apps/web/src/test/components/ui/Select.test.tsx index 7edffe883..831adf67c 100644 --- a/apps/web/src/test/components/ui/Select.test.tsx +++ b/apps/web/src/test/components/ui/Select.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import Select from '@/components/ui/Select' +import Select from "@/components/ui/Select" describe("Select", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/components/ui/Tag.test.tsx b/apps/web/src/test/components/ui/Tag.test.tsx index 3e5a39703..36537a3cd 100644 --- a/apps/web/src/test/components/ui/Tag.test.tsx +++ b/apps/web/src/test/components/ui/Tag.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import { Tag } from '@/components/ui/Tag' +import { Tag } from "@/components/ui/Tag" describe("Tag", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/components/ui/Tooltip.test.tsx b/apps/web/src/test/components/ui/Tooltip.test.tsx index 0317a6d25..1ae26cefc 100644 --- a/apps/web/src/test/components/ui/Tooltip.test.tsx +++ b/apps/web/src/test/components/ui/Tooltip.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest" import { render } from "@testing-library/react" -import { Tooltip } from '@/components/ui/Tooltip' +import { Tooltip } from "@/components/ui/Tooltip" describe("Tooltip", () => { it("should render without crashing", () => { diff --git a/apps/web/src/test/hooks/useCloneProgress.test.tsx b/apps/web/src/test/hooks/useCloneProgress.test.tsx index 035dca8a6..2dddd924d 100644 --- a/apps/web/src/test/hooks/useCloneProgress.test.tsx +++ b/apps/web/src/test/hooks/useCloneProgress.test.tsx @@ -77,9 +77,7 @@ describe("useCloneProgress", () => { }) it("should update clone via updateClone", async () => { - mockGetVoiceClones.mockResolvedValue([ - { id: "1", name: "旧名字", status: "processing" }, - ]) + mockGetVoiceClones.mockResolvedValue([{ id: "1", name: "旧名字", status: "processing" }]) const { result } = renderHook(() => useCloneProgress()) diff --git a/apps/web/src/test/pages/Accounts.test.tsx b/apps/web/src/test/pages/Accounts.test.tsx index 9973752e5..1ae2038c6 100644 --- a/apps/web/src/test/pages/Accounts.test.tsx +++ b/apps/web/src/test/pages/Accounts.test.tsx @@ -4,7 +4,9 @@ import { MemoryRouter } from "react-router-dom" vi.mock("@/components/layout/PageHead", () => ({ default: ({ title }: { title: string; description?: string }) => ( -

{title}

+
+

{title}

+
), })) @@ -15,7 +17,7 @@ describe("Accounts Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) diff --git a/apps/web/src/test/pages/AdminComingSoon.test.tsx b/apps/web/src/test/pages/AdminComingSoon.test.tsx index 0ecd90d4a..4b8298e1e 100644 --- a/apps/web/src/test/pages/AdminComingSoon.test.tsx +++ b/apps/web/src/test/pages/AdminComingSoon.test.tsx @@ -16,7 +16,7 @@ describe("AdminComingSoon Page", () => { render( - + , ) expect(screen.getByText("Admin 后台暂未开放")).toBeTruthy() }) @@ -25,7 +25,7 @@ describe("AdminComingSoon Page", () => { render( - + , ) expect(screen.getByText("返回首页")).toBeTruthy() }) diff --git a/apps/web/src/test/pages/Billing.test.tsx b/apps/web/src/test/pages/Billing.test.tsx index e17ea4d3e..b825828de 100644 --- a/apps/web/src/test/pages/Billing.test.tsx +++ b/apps/web/src/test/pages/Billing.test.tsx @@ -4,7 +4,9 @@ import { MemoryRouter } from "react-router-dom" vi.mock("@/components/layout/PageHead", () => ({ default: ({ title }: { title: string; description?: string }) => ( -

{title}

+
+

{title}

+
), })) @@ -15,7 +17,7 @@ describe("Billing Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) diff --git a/apps/web/src/test/pages/Dashboard.test.tsx b/apps/web/src/test/pages/Dashboard.test.tsx index 48433ca3a..afde5459f 100644 --- a/apps/web/src/test/pages/Dashboard.test.tsx +++ b/apps/web/src/test/pages/Dashboard.test.tsx @@ -16,7 +16,7 @@ describe("Dashboard Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -25,7 +25,7 @@ describe("Dashboard Page", () => { const { container } = render( - + , ) expect(container.querySelector(".xx-dashboard-page")).toBeTruthy() }) diff --git a/apps/web/src/test/pages/DuplicationDetail.test.tsx b/apps/web/src/test/pages/DuplicationDetail.test.tsx index ac2403612..28ecd0927 100644 --- a/apps/web/src/test/pages/DuplicationDetail.test.tsx +++ b/apps/web/src/test/pages/DuplicationDetail.test.tsx @@ -27,7 +27,9 @@ vi.mock("@tanstack/react-query", () => ({ vi.mock("@/components/ui", () => ({ Button: ({ children, onClick, disabled }: any) => ( - + ), Card: ({ children }: any) =>
{children}
, Tag: ({ children }: any) => {children}, @@ -43,12 +45,16 @@ vi.mock("@/components/ui", () => ({ vi.mock("antd", () => ({ Table: ({ columns, dataSource }: any) => (
- {columns?.map((c: any) => {c.title})} + {columns?.map((c: any) => ( + {c.title} + ))}
), Tabs: ({ items }: any) => (
- {items?.map((t: any) => {t.label})} + {items?.map((t: any) => ( + {t.label} + ))}
), Pagination: ({ total }: any) =>
{total}
, diff --git a/apps/web/src/test/pages/DuplicationUpload.test.tsx b/apps/web/src/test/pages/DuplicationUpload.test.tsx index 5bd53767e..c96190372 100644 --- a/apps/web/src/test/pages/DuplicationUpload.test.tsx +++ b/apps/web/src/test/pages/DuplicationUpload.test.tsx @@ -24,7 +24,9 @@ vi.mock("@tanstack/react-query", () => ({ vi.mock("@/components/ui", () => ({ Button: ({ children, onClick, disabled }: any) => ( - + ), Card: ({ children }: any) =>
{children}
, Tag: ({ children }: any) => {children}, diff --git a/apps/web/src/test/pages/HomePage.test.tsx b/apps/web/src/test/pages/HomePage.test.tsx index e32258d49..dab918a1d 100644 --- a/apps/web/src/test/pages/HomePage.test.tsx +++ b/apps/web/src/test/pages/HomePage.test.tsx @@ -28,7 +28,7 @@ describe("HomePage", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -37,7 +37,7 @@ describe("HomePage", () => { const { container } = render( - + , ) expect(container.querySelector(".hp-hero")).toBeTruthy() }) @@ -46,7 +46,7 @@ describe("HomePage", () => { const { container } = render( - + , ) expect(container.querySelector(".hp-features")).toBeTruthy() }) @@ -55,7 +55,7 @@ describe("HomePage", () => { const { container } = render( - + , ) expect(container.querySelector(".hp-pricing")).toBeTruthy() }) diff --git a/apps/web/src/test/pages/MyVoices.test.tsx b/apps/web/src/test/pages/MyVoices.test.tsx index 783ee8ef2..19a4c3752 100644 --- a/apps/web/src/test/pages/MyVoices.test.tsx +++ b/apps/web/src/test/pages/MyVoices.test.tsx @@ -27,7 +27,9 @@ vi.mock("@tanstack/react-query", () => ({ vi.mock("@/components/ui", () => ({ Button: ({ children, onClick, disabled }: any) => ( - + ), Card: ({ children }: any) =>
{children}
, Tag: ({ children }: any) => {children}, @@ -43,12 +45,16 @@ vi.mock("@/components/ui", () => ({ vi.mock("antd", () => ({ Table: ({ columns, dataSource }: any) => (
- {columns?.map((c: any) => {c.title})} + {columns?.map((c: any) => ( + {c.title} + ))}
), Tabs: ({ items }: any) => (
- {items?.map((t: any) => {t.label})} + {items?.map((t: any) => ( + {t.label} + ))}
), Pagination: ({ total }: any) =>
{total}
, diff --git a/apps/web/src/test/pages/Plans.test.tsx b/apps/web/src/test/pages/Plans.test.tsx index 8f484160b..5f79062f1 100644 --- a/apps/web/src/test/pages/Plans.test.tsx +++ b/apps/web/src/test/pages/Plans.test.tsx @@ -4,7 +4,9 @@ import { MemoryRouter } from "react-router-dom" vi.mock("@/components/layout/PageHead", () => ({ default: ({ title }: { title: string; description?: string }) => ( -

{title}

+
+

{title}

+
), })) @@ -15,7 +17,7 @@ describe("Plans Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) diff --git a/apps/web/src/test/pages/ProductLibrary.test.tsx b/apps/web/src/test/pages/ProductLibrary.test.tsx index 26341848e..f2c8629e2 100644 --- a/apps/web/src/test/pages/ProductLibrary.test.tsx +++ b/apps/web/src/test/pages/ProductLibrary.test.tsx @@ -11,14 +11,23 @@ vi.mock("@tanstack/react-query", () => ({ useQuery: () => ({ data: [], isLoading: false, isError: false, refetch: vi.fn() }), useMutation: () => ({ mutate: vi.fn(), mutateAsync: vi.fn(), isLoading: false }), useQueryClient: () => ({ invalidateQueries: vi.fn(), setQueryData: vi.fn() }), - useInfiniteQuery: () => ({ data: { pages: [] }, isLoading: false, fetchNextPage: vi.fn(), hasNextPage: false }), + useInfiniteQuery: () => ({ + data: { pages: [] }, + isLoading: false, + fetchNextPage: vi.fn(), + hasNextPage: false, + }), })) vi.mock("@/components/ui", () => ({ Button: ({ children, onClick }: any) => , Input: ({ placeholder }: any) => , Select: ({ options }: any) => ( - + ), Modal: ({ open, children }: any) => (open ?
{children}
: null), Empty: () =>
Empty
, @@ -50,7 +59,12 @@ vi.mock("antd", () => ({ Switch: () => , Radio: ({ children }: any) => {children}, RadioGroup: ({ children }: any) =>
{children}
, - Checkbox: ({ children }: any) => , + Checkbox: ({ children }: any) => ( + + ), DatePicker: () => , Col: ({ children }: any) =>
{children}
, Row: ({ children }: any) =>
{children}
, @@ -77,13 +91,31 @@ vi.mock("antd", () => ({ })) vi.mock("@ant-design/icons", () => ({ - CheckOutlined: () => , CloseOutlined: () => , CloudUploadOutlined: () => , DeleteOutlined: () => , DownloadOutlined: () => , EyeOutlined: () => , PauseCircleOutlined: () => , PlayCircleOutlined: () => , SearchOutlined: () => , ShareAltOutlined: () => , VideoCameraOutlined: () => , + CheckOutlined: () => , + CloseOutlined: () => , + CloudUploadOutlined: () => , + DeleteOutlined: () => , + DownloadOutlined: () => , + EyeOutlined: () => , + PauseCircleOutlined: () => , + PlayCircleOutlined: () => , + SearchOutlined: () => , + ShareAltOutlined: () => , + VideoCameraOutlined: () => , })) -vi.mock("@/store/authStore", () => ({ useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }) })) +vi.mock("@/store/authStore", () => ({ + useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }), +})) vi.mock("@/api/products", () => ({ - getProducts: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getProduct: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), deleteProduct: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getProductDownloadUrl: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), updateReviewStatus: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), batchDownload: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getBatchDownloadStatus: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getProducts: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getProduct: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + deleteProduct: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getProductDownloadUrl: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + updateReviewStatus: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + batchDownload: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getBatchDownloadStatus: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), })) vi.mock("@/pages/products/ProductLibrary.css", () => ({})) diff --git a/apps/web/src/test/pages/Settings.test.tsx b/apps/web/src/test/pages/Settings.test.tsx index e74ca51fc..e0614b0bf 100644 --- a/apps/web/src/test/pages/Settings.test.tsx +++ b/apps/web/src/test/pages/Settings.test.tsx @@ -35,7 +35,7 @@ describe("Settings Page", () => { render( - + , ) expect(screen.getByText("个人设置")).toBeTruthy() }) @@ -44,7 +44,7 @@ describe("Settings Page", () => { render( - + , ) expect(screen.getByDisplayValue("testuser")).toBeTruthy() expect(screen.getByDisplayValue("test@example.com")).toBeTruthy() @@ -54,7 +54,7 @@ describe("Settings Page", () => { render( - + , ) const button = screen.getByText("保存暂未开放") expect(button).toBeTruthy() diff --git a/apps/web/src/test/pages/TaskCenter.test.tsx b/apps/web/src/test/pages/TaskCenter.test.tsx index 8b0ced8d3..0a2c15a74 100644 --- a/apps/web/src/test/pages/TaskCenter.test.tsx +++ b/apps/web/src/test/pages/TaskCenter.test.tsx @@ -11,14 +11,23 @@ vi.mock("@tanstack/react-query", () => ({ useQuery: () => ({ data: [], isLoading: false, isError: false, refetch: vi.fn() }), useMutation: () => ({ mutate: vi.fn(), mutateAsync: vi.fn(), isLoading: false }), useQueryClient: () => ({ invalidateQueries: vi.fn(), setQueryData: vi.fn() }), - useInfiniteQuery: () => ({ data: { pages: [] }, isLoading: false, fetchNextPage: vi.fn(), hasNextPage: false }), + useInfiniteQuery: () => ({ + data: { pages: [] }, + isLoading: false, + fetchNextPage: vi.fn(), + hasNextPage: false, + }), })) vi.mock("@/components/ui", () => ({ Button: ({ children, onClick }: any) => , Input: ({ placeholder }: any) => , Select: ({ options }: any) => ( - + ), Modal: ({ open, children }: any) => (open ?
{children}
: null), Empty: () =>
Empty
, @@ -50,7 +59,12 @@ vi.mock("antd", () => ({ Switch: () => , Radio: ({ children }: any) => {children}, RadioGroup: ({ children }: any) =>
{children}
, - Checkbox: ({ children }: any) => , + Checkbox: ({ children }: any) => ( + + ), DatePicker: () => , Col: ({ children }: any) =>
{children}
, Row: ({ children }: any) =>
{children}
, @@ -77,13 +91,27 @@ vi.mock("antd", () => ({ })) vi.mock("@ant-design/icons", () => ({ - CheckCircleOutlined: () => , ClockCircleOutlined: () => , CloseCircleOutlined: () => , ExclamationCircleOutlined: () => , InfoCircleOutlined: () => , MinusCircleOutlined: () => , RedoOutlined: () => , SyncOutlined: () => , + CheckCircleOutlined: () => , + ClockCircleOutlined: () => , + CloseCircleOutlined: () => , + ExclamationCircleOutlined: () => , + InfoCircleOutlined: () => , + MinusCircleOutlined: () => , + RedoOutlined: () => , + SyncOutlined: () => , })) -vi.mock("@/store/authStore", () => ({ useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }) })) +vi.mock("@/store/authStore", () => ({ + useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }), +})) vi.mock("@/api/tasks", () => ({ - getTasks: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getUserTasks: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), retryTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), cancelTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), deleteTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getTasks: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getUserTasks: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + retryTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + cancelTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + deleteTask: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), })) vi.mock("@/pages/tasks/TaskCenter.css", () => ({})) diff --git a/apps/web/src/test/pages/TemplateLibrary.test.tsx b/apps/web/src/test/pages/TemplateLibrary.test.tsx index 7f516485e..9ea5d984c 100644 --- a/apps/web/src/test/pages/TemplateLibrary.test.tsx +++ b/apps/web/src/test/pages/TemplateLibrary.test.tsx @@ -11,14 +11,23 @@ vi.mock("@tanstack/react-query", () => ({ useQuery: () => ({ data: [], isLoading: false, isError: false, refetch: vi.fn() }), useMutation: () => ({ mutate: vi.fn(), mutateAsync: vi.fn(), isLoading: false }), useQueryClient: () => ({ invalidateQueries: vi.fn(), setQueryData: vi.fn() }), - useInfiniteQuery: () => ({ data: { pages: [] }, isLoading: false, fetchNextPage: vi.fn(), hasNextPage: false }), + useInfiniteQuery: () => ({ + data: { pages: [] }, + isLoading: false, + fetchNextPage: vi.fn(), + hasNextPage: false, + }), })) vi.mock("@/components/ui", () => ({ Button: ({ children, onClick }: any) => , Input: ({ placeholder }: any) => , Select: ({ options }: any) => ( - + ), Modal: ({ open, children }: any) => (open ?
{children}
: null), Empty: () =>
Empty
, @@ -50,7 +59,12 @@ vi.mock("antd", () => ({ Switch: () => , Radio: ({ children }: any) => {children}, RadioGroup: ({ children }: any) =>
{children}
, - Checkbox: ({ children }: any) => , + Checkbox: ({ children }: any) => ( + + ), DatePicker: () => , Col: ({ children }: any) =>
{children}
, Row: ({ children }: any) =>
{children}
, @@ -77,13 +91,25 @@ vi.mock("antd", () => ({ })) vi.mock("@ant-design/icons", () => ({ - CopyOutlined: () => , ExclamationCircleOutlined: () => , InboxOutlined: () => , LoadingOutlined: () => , SearchOutlined: () => , ThunderboltOutlined: () => , + CopyOutlined: () => , + ExclamationCircleOutlined: () => , + InboxOutlined: () => , + LoadingOutlined: () => , + SearchOutlined: () => , + ThunderboltOutlined: () => , })) -vi.mock("@/store/authStore", () => ({ useAuthStore: (sel: any) => sel({ user: { id: "1", vip_level: 0 }, isAuthenticated: true }) })) +vi.mock("@/store/authStore", () => ({ + useAuthStore: (sel: any) => sel({ user: { id: "1", vip_level: 0 }, isAuthenticated: true }), +})) vi.mock("@/api/templates", () => ({ - getTemplates: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getTemplatesList: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), toggleFavoriteTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), copyTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), generateFromTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getTemplates: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getTemplatesList: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + toggleFavoriteTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + copyTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + generateFromTemplate: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), })) vi.mock("@/pages/templates/TemplateLibrary.css", () => ({})) diff --git a/apps/web/src/test/pages/TitleLibrary.test.tsx b/apps/web/src/test/pages/TitleLibrary.test.tsx index 8515d6bbd..29319a0b3 100644 --- a/apps/web/src/test/pages/TitleLibrary.test.tsx +++ b/apps/web/src/test/pages/TitleLibrary.test.tsx @@ -17,7 +17,11 @@ vi.mock("@/components/ui", () => ({ Button: ({ children, onClick }: any) => , Input: ({ placeholder }: any) => , Select: ({ options }: any) => ( - + ), Modal: ({ open, children }: any) => (open ?
{children}
: null), Empty: () =>
Empty
, diff --git a/apps/web/src/test/pages/VoiceClone.test.tsx b/apps/web/src/test/pages/VoiceClone.test.tsx index 866039563..ac43bce7c 100644 --- a/apps/web/src/test/pages/VoiceClone.test.tsx +++ b/apps/web/src/test/pages/VoiceClone.test.tsx @@ -27,7 +27,9 @@ vi.mock("@tanstack/react-query", () => ({ vi.mock("@/components/ui", () => ({ Button: ({ children, onClick, disabled }: any) => ( - + ), Card: ({ children }: any) =>
{children}
, Tag: ({ children }: any) => {children}, @@ -43,12 +45,16 @@ vi.mock("@/components/ui", () => ({ vi.mock("antd", () => ({ Table: ({ columns, dataSource }: any) => (
- {columns?.map((c: any) => {c.title})} + {columns?.map((c: any) => ( + {c.title} + ))}
), Tabs: ({ items }: any) => (
- {items?.map((t: any) => {t.label})} + {items?.map((t: any) => ( + {t.label} + ))}
), Pagination: ({ total }: any) =>
{total}
, diff --git a/apps/web/src/test/pages/VoiceLibrary.test.tsx b/apps/web/src/test/pages/VoiceLibrary.test.tsx index 5ecff254b..efc09a302 100644 --- a/apps/web/src/test/pages/VoiceLibrary.test.tsx +++ b/apps/web/src/test/pages/VoiceLibrary.test.tsx @@ -11,14 +11,23 @@ vi.mock("@tanstack/react-query", () => ({ useQuery: () => ({ data: [], isLoading: false, isError: false, refetch: vi.fn() }), useMutation: () => ({ mutate: vi.fn(), mutateAsync: vi.fn(), isLoading: false }), useQueryClient: () => ({ invalidateQueries: vi.fn(), setQueryData: vi.fn() }), - useInfiniteQuery: () => ({ data: { pages: [] }, isLoading: false, fetchNextPage: vi.fn(), hasNextPage: false }), + useInfiniteQuery: () => ({ + data: { pages: [] }, + isLoading: false, + fetchNextPage: vi.fn(), + hasNextPage: false, + }), })) vi.mock("@/components/ui", () => ({ Button: ({ children, onClick }: any) => , Input: ({ placeholder }: any) => , Select: ({ options }: any) => ( - + ), Modal: ({ open, children }: any) => (open ?
{children}
: null), Empty: () =>
Empty
, @@ -50,7 +59,12 @@ vi.mock("antd", () => ({ Switch: () => , Radio: ({ children }: any) => {children}, RadioGroup: ({ children }: any) =>
{children}
, - Checkbox: ({ children }: any) => , + Checkbox: ({ children }: any) => ( + + ), DatePicker: () => , Col: ({ children }: any) =>
{children}
, Row: ({ children }: any) =>
{children}
, @@ -77,14 +91,38 @@ vi.mock("antd", () => ({ })) vi.mock("@ant-design/icons", () => ({ - AudioOutlined: () => , CloseCircleOutlined: () => , DeleteOutlined: () => , HeartOutlined: () => , PauseCircleOutlined: () => , PlayCircleOutlined: () => , PlusOutlined: () => , ReloadOutlined: () => , RobotOutlined: () => , SearchOutlined: () => , SoundOutlined: () => , UploadOutlined: () => , UserOutlined: () => , + AudioOutlined: () => , + CloseCircleOutlined: () => , + DeleteOutlined: () => , + HeartOutlined: () => , + PauseCircleOutlined: () => , + PlayCircleOutlined: () => , + PlusOutlined: () => , + ReloadOutlined: () => , + RobotOutlined: () => , + SearchOutlined: () => , + SoundOutlined: () => , + UploadOutlined: () => , + UserOutlined: () => , })) -vi.mock("@/store/authStore", () => ({ useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }) })) -vi.mock("@/api/voiceClone", () => ({ createVoiceClone: vi.fn().mockResolvedValue({ success: true }), deleteVoiceClone: vi.fn().mockResolvedValue({ success: true }), retryVoiceClone: vi.fn().mockResolvedValue({ success: true }) })) +vi.mock("@/store/authStore", () => ({ + useAuthStore: (sel: any) => sel({ user: { id: "1" }, isAuthenticated: true }), +})) +vi.mock("@/api/voiceClone", () => ({ + createVoiceClone: vi.fn().mockResolvedValue({ success: true }), + deleteVoiceClone: vi.fn().mockResolvedValue({ success: true }), + retryVoiceClone: vi.fn().mockResolvedValue({ success: true }), +})) vi.mock("@/api/voices", () => ({ - fetchVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), fetchPresetVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), getVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), createVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), updateVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), deleteVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), generateAIVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + fetchVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + fetchPresetVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + getVoices: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + createVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + updateVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + deleteVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), + generateAIVoice: vi.fn().mockResolvedValue({ items: [], total: 0, success: true }), })) vi.mock("@/pages/voices/VoiceLibrary.css", () => ({})) diff --git a/apps/web/src/test/pages/auth/ForgotPassword.test.tsx b/apps/web/src/test/pages/auth/ForgotPassword.test.tsx index f382cde02..fc4484cc1 100644 --- a/apps/web/src/test/pages/auth/ForgotPassword.test.tsx +++ b/apps/web/src/test/pages/auth/ForgotPassword.test.tsx @@ -36,7 +36,7 @@ describe("ForgotPassword Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -45,7 +45,7 @@ describe("ForgotPassword Page", () => { const { container } = render( - + , ) expect(container.querySelector(".ant-form")).toBeTruthy() }) @@ -54,7 +54,7 @@ describe("ForgotPassword Page", () => { const { container } = render( - + , ) expect(container.querySelector("input")).toBeTruthy() }) diff --git a/apps/web/src/test/pages/auth/Login.test.tsx b/apps/web/src/test/pages/auth/Login.test.tsx index de415da11..c310b5a15 100644 --- a/apps/web/src/test/pages/auth/Login.test.tsx +++ b/apps/web/src/test/pages/auth/Login.test.tsx @@ -28,7 +28,7 @@ describe("Login Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -37,7 +37,7 @@ describe("Login Page", () => { const { container } = render( - + , ) expect(container.querySelector(".ant-form")).toBeTruthy() }) @@ -46,7 +46,7 @@ describe("Login Page", () => { const { container } = render( - + , ) const inputs = container.querySelectorAll("input") expect(inputs.length).toBeGreaterThanOrEqual(2) @@ -56,7 +56,7 @@ describe("Login Page", () => { const { container } = render( - + , ) expect(container.querySelector(".ant-checkbox")).toBeTruthy() }) diff --git a/apps/web/src/test/pages/auth/Register.test.tsx b/apps/web/src/test/pages/auth/Register.test.tsx index c5d036fb2..ebaeea7f1 100644 --- a/apps/web/src/test/pages/auth/Register.test.tsx +++ b/apps/web/src/test/pages/auth/Register.test.tsx @@ -28,7 +28,7 @@ describe("Register Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -37,7 +37,7 @@ describe("Register Page", () => { const { container } = render( - + , ) expect(container.querySelector(".ant-form")).toBeTruthy() }) @@ -46,7 +46,7 @@ describe("Register Page", () => { const { container } = render( - + , ) const inputs = container.querySelectorAll("input") expect(inputs.length).toBeGreaterThanOrEqual(3) diff --git a/apps/web/src/test/pages/auth/ResetPassword.test.tsx b/apps/web/src/test/pages/auth/ResetPassword.test.tsx index 22418219d..0c1ffb51b 100644 --- a/apps/web/src/test/pages/auth/ResetPassword.test.tsx +++ b/apps/web/src/test/pages/auth/ResetPassword.test.tsx @@ -37,7 +37,7 @@ describe("ResetPassword Page", () => { const { container } = render( - + , ) expect(container).toBeTruthy() }) @@ -46,7 +46,7 @@ describe("ResetPassword Page", () => { const { container } = render( - + , ) expect(container.querySelector(".ant-form")).toBeTruthy() }) @@ -55,7 +55,7 @@ describe("ResetPassword Page", () => { const { container } = render( - + , ) const inputs = container.querySelectorAll("input") expect(inputs.length).toBeGreaterThanOrEqual(1) diff --git a/apps/web/src/test/pages/editing-planner/components/GenerationHistoryModal.test.tsx b/apps/web/src/test/pages/editing-planner/components/GenerationHistoryModal.test.tsx index 485082a15..36e931951 100644 --- a/apps/web/src/test/pages/editing-planner/components/GenerationHistoryModal.test.tsx +++ b/apps/web/src/test/pages/editing-planner/components/GenerationHistoryModal.test.tsx @@ -31,7 +31,9 @@ describe("GenerationHistoryModal", () => { duration: 60, }, ] - const { container } = render() + const { container } = render( + , + ) expect(container).toBeTruthy() }) }) diff --git a/apps/web/src/test/pages/editing-planner/components/GreenScreenPanel.test.tsx b/apps/web/src/test/pages/editing-planner/components/GreenScreenPanel.test.tsx index 1cd5fdc14..0f6fea2fd 100644 --- a/apps/web/src/test/pages/editing-planner/components/GreenScreenPanel.test.tsx +++ b/apps/web/src/test/pages/editing-planner/components/GreenScreenPanel.test.tsx @@ -5,7 +5,13 @@ import GreenScreenPanel from "@/pages/editing-planner/components/GreenScreenPane const defaultProps = { open: true, onClose: vi.fn(), - config: { enabled: false, color_preset: "green", color: "#00ff00", threshold: 40, smoothness: 10 } as any, + config: { + enabled: false, + color_preset: "green", + color: "#00ff00", + threshold: 40, + smoothness: 10, + } as any, onChange: vi.fn(), } diff --git a/apps/web/src/test/pages/editing-planner/components/PreviewPlayer.test.tsx b/apps/web/src/test/pages/editing-planner/components/PreviewPlayer.test.tsx index bdaa099dd..09d0ff76b 100644 --- a/apps/web/src/test/pages/editing-planner/components/PreviewPlayer.test.tsx +++ b/apps/web/src/test/pages/editing-planner/components/PreviewPlayer.test.tsx @@ -24,9 +24,7 @@ describe("PreviewPlayer", () => { }) it("should render with clips", () => { - const clips = [ - { id: "1", type: "voice", text: "test", duration: 10 }, - ] + const clips = [{ id: "1", type: "voice", text: "test", duration: 10 }] const { container } = render() expect(container).toBeTruthy() })