diff --git a/web/app/components/app/configuration/debug/debug-with-multiple-model/index.spec.tsx b/web/app/components/app/configuration/debug/debug-with-multiple-model/index.spec.tsx index 05a22c5153..188086246a 100644 --- a/web/app/components/app/configuration/debug/debug-with-multiple-model/index.spec.tsx +++ b/web/app/components/app/configuration/debug/debug-with-multiple-model/index.spec.tsx @@ -7,6 +7,7 @@ import type { FileEntity } from '@/app/components/base/file-uploader/types' import type { Inputs, ModelConfig } from '@/models/debug' import type { PromptVariable } from '@/types/app' import { fireEvent, render, screen } from '@testing-library/react' +import { useStore as useAppStore } from '@/app/components/app/store' import { DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG } from '@/config' import { AppModeEnum, ModelModeType, Resolution, TransferMethod } from '@/types/app' import { APP_CHAT_WITH_MULTIPLE_MODEL } from '../types' @@ -21,9 +22,7 @@ type PromptVariableWithMeta = Omit & { const mockUseDebugConfigurationContext = vi.fn() const mockUseFeaturesSelector = vi.fn() const mockUseEventEmitterContext = vi.fn() -const mockUseAppStoreSelector = vi.fn() const mockEventEmitter = { emit: vi.fn() } -const mockSetShowAppConfigureFeaturesModal = vi.fn() let capturedChatInputProps: MockChatInputAreaProps | null = null let modelIdCounter = 0 let featureState: FeatureStoreState @@ -63,10 +62,6 @@ vi.mock('@/context/event-emitter', () => ({ useEventEmitterContextContext: () => mockUseEventEmitterContext(), })) -vi.mock('@/app/components/app/store', () => ({ - useStore: (selector: (state: { setShowAppConfigureFeaturesModal: typeof mockSetShowAppConfigureFeaturesModal }) => unknown) => mockUseAppStoreSelector(selector), -})) - vi.mock('./debug-item', () => ({ default: ({ modelAndParameter, @@ -191,7 +186,6 @@ describe('DebugWithMultipleModel', () => { featureState = createFeatureState() mockUseFeaturesSelector.mockImplementation(selector => selector(featureState)) mockUseEventEmitterContext.mockReturnValue({ eventEmitter: mockEventEmitter }) - mockUseAppStoreSelector.mockImplementation(selector => selector({ setShowAppConfigureFeaturesModal: mockSetShowAppConfigureFeaturesModal })) mockUseDebugConfigurationContext.mockReturnValue(createDebugConfiguration()) }) @@ -438,7 +432,7 @@ describe('DebugWithMultipleModel', () => { expect(capturedChatInputProps?.showFileUpload).toBe(false) expect(capturedChatInputProps?.speechToTextConfig).toEqual(featureState.features.speech2text) expect(capturedChatInputProps?.visionConfig).toEqual(featureState.features.file) - expect(mockSetShowAppConfigureFeaturesModal).toHaveBeenCalledWith(true) + expect(useAppStore.getState().showAppConfigureFeaturesModal).toBe(true) }) it('should render chat input in agent chat mode', () => { diff --git a/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx b/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx index 151038d787..b9a1c5ba8b 100644 --- a/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx +++ b/web/app/components/app/configuration/debug/debug-with-single-model/index.spec.tsx @@ -7,6 +7,7 @@ import type { ProviderContextState } from '@/context/provider-context' import type { DatasetConfigs, ModelConfig } from '@/models/debug' import { act, fireEvent, render, screen, waitFor } from '@testing-library/react' import { createRef } from 'react' +import { useStore as useAppStore } from '@/app/components/app/store' import { ConfigurationMethodEnum, ModelFeatureEnum, ModelStatusEnum, ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' import { CollectionType } from '@/app/components/tools/types' import { PromptMode } from '@/models/debug' @@ -376,15 +377,7 @@ vi.mock('../hooks', () => ({ useFormattingChangedSubscription: mockUseFormattingChangedSubscription, })) -const mockSetShowAppConfigureFeaturesModal = vi.fn() - -vi.mock('@/app/components/app/store', () => ({ - useStore: vi.fn((selector?: (state: { setShowAppConfigureFeaturesModal: typeof mockSetShowAppConfigureFeaturesModal }) => unknown) => { - if (typeof selector === 'function') - return selector({ setShowAppConfigureFeaturesModal: mockSetShowAppConfigureFeaturesModal }) - return mockSetShowAppConfigureFeaturesModal - }), -})) +// Use real store - global zustand mock will auto-reset between tests // Mock event emitter context vi.mock('@/context/event-emitter', () => ({ @@ -659,7 +652,7 @@ describe('DebugWithSingleModel', () => { fireEvent.click(screen.getByTestId('feature-bar-button')) - expect(mockSetShowAppConfigureFeaturesModal).toHaveBeenCalledWith(true) + expect(useAppStore.getState().showAppConfigureFeaturesModal).toBe(true) }) }) diff --git a/web/app/components/app/configuration/prompt-value-panel/index.spec.tsx b/web/app/components/app/configuration/prompt-value-panel/index.spec.tsx index d0c6f02308..96c95e1cc8 100644 --- a/web/app/components/app/configuration/prompt-value-panel/index.spec.tsx +++ b/web/app/components/app/configuration/prompt-value-panel/index.spec.tsx @@ -2,14 +2,11 @@ import type { IPromptValuePanelProps } from './index' import { fireEvent, render, screen, waitFor } from '@testing-library/react' import * as React from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' -import { useStore } from '@/app/components/app/store' import ConfigContext from '@/context/debug-configuration' import { AppModeEnum, ModelModeType, Resolution } from '@/types/app' import PromptValuePanel from './index' -vi.mock('@/app/components/app/store', () => ({ - useStore: vi.fn(), -})) +// Use real store - global zustand mock will auto-reset between tests vi.mock('@/app/components/base/features/new-feature-panel/feature-bar', () => ({ default: ({ onFeatureBarClick }: { onFeatureBarClick: () => void }) => (