From 3a64db3d6015bfa39aea1ae3be1d6039c9a999ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 09:36:56 +0000 Subject: [PATCH] test: enable vitest async leak detection Co-authored-by: hyoban <38493346+hyoban@users.noreply.github.com> --- .../develop/develop-page-flow.test.tsx | 32 ++++++------------- .../explore/explore-app-list-flow.test.tsx | 13 ++++++++ web/vite.config.ts | 1 + web/vitest.setup.ts | 4 +++ 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/web/__tests__/develop/develop-page-flow.test.tsx b/web/__tests__/develop/develop-page-flow.test.tsx index 703f7362f1..5fe78fb3a6 100644 --- a/web/__tests__/develop/develop-page-flow.test.tsx +++ b/web/__tests__/develop/develop-page-flow.test.tsx @@ -6,27 +6,12 @@ * * Uses real DevelopMain, ApiServer, and Doc components with minimal mocks. */ -import { act, render, screen, waitFor } from '@testing-library/react' +import { render, screen, waitFor } from '@testing-library/react' import userEvent from '@testing-library/user-event' -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { beforeEach, describe, expect, it, vi } from 'vitest' import DevelopMain from '@/app/components/develop' import { AppModeEnum, Theme } from '@/types/app' -beforeEach(() => { - vi.useFakeTimers({ shouldAdvanceTime: true }) -}) - -afterEach(() => { - vi.runOnlyPendingTimers() - vi.useRealTimers() -}) - -async function flushUI() { - await act(async () => { - vi.runAllTimers() - }) -} - let storeAppDetail: unknown vi.mock('@/app/components/app/store', () => ({ @@ -85,6 +70,10 @@ vi.mock('@/service/knowledge/use-dataset', () => ({ useInvalidateDatasetApiKeys: () => vi.fn(), })) +vi.mock('@/app/components/develop/secret-key/secret-key-modal', () => ({ + default: ({ isShow }: { isShow: boolean }) => (isShow ?
: null), +})) + // ---------- tests ---------- describe('DevelopMain page flow', () => { @@ -159,7 +148,7 @@ describe('DevelopMain page flow', () => { }) it('should open API key modal from the page', async () => { - const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime }) + const user = userEvent.setup() storeAppDetail = { id: 'app-1', @@ -171,14 +160,11 @@ describe('DevelopMain page flow', () => { render(