UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

55 lines (41 loc) 1.61 kB
import { act } from '@testing-library/react'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { DEFAULT_FEATURE_FLAGS } from '@/config/featureFlags'; import { ServerConfigStore, createServerConfigStore, initServerConfigStore } from './store'; describe('createServerConfigStore', () => { beforeEach(() => { // 每个测试用例前重置模块状态 vi.resetModules(); }); it('should create a singleton store', () => { const store1 = createServerConfigStore(); const store2 = createServerConfigStore(); expect(store1).toBe(store2); }); it('should initialize store with default state', () => { const store = createServerConfigStore(); expect(store.getState()).toMatchObject({ featureFlags: DEFAULT_FEATURE_FLAGS, serverConfig: { telemetry: {}, aiProvider: {} }, }); }); it('should initialize store with custom initial state', () => { const initialState: Partial<ServerConfigStore> = { featureFlags: { edit_agent: false }, serverConfig: { telemetry: { langfuse: true }, aiProvider: {} }, }; const store = initServerConfigStore(initialState); expect(store.getState().featureFlags.edit_agent).toBeFalsy(); expect(store.getState().serverConfig).toEqual({ telemetry: { langfuse: true }, aiProvider: {}, }); }); it('should update store state correctly', () => { const store = createServerConfigStore(); act(() => { store.setState({ featureFlags: { dalle: false } }); }); expect(store.getState().featureFlags.dalle).toBeFalsy(); }); });