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.

90 lines (75 loc) 2.35 kB
import { describe, expect, it, vi } from 'vitest'; import { featureFlagsSelectors, serverConfigSelectors } from './selectors'; import { initServerConfigStore } from './store'; vi.mock('zustand/traditional'); describe('featureFlagsSelectors', () => { it('should return mapped feature flags from store', () => { const store = initServerConfigStore({ featureFlags: { language_model_settings: false, edit_agent: false, }, }); const result = featureFlagsSelectors(store.getState()); expect(result).toEqual({ enableWebrtc: false, isAgentEditable: false, enablePlugins: true, showCreateSession: true, showChangelog: true, enableRAGEval: false, showDalle: true, enableKnowledgeBase: true, showLLM: false, showCloudPromotion: false, showOpenAIApiKey: true, hideDocs: false, hideGitHub: false, showOpenAIProxyUrl: true, enableCheckUpdates: true, showWelcomeSuggest: true, enableClerkSignUp: true, showProvider: true, showMarket: true, showPinList: false, enableSTT: true, }); }); }); describe('serverConfigSelectors', () => { describe('enabledOAuthSSO', () => { it('should return enabledOAuthSSO value from store', () => { const store = initServerConfigStore({ serverConfig: { enabledOAuthSSO: true, telemetry: {}, aiProvider: {}, }, }); const result = serverConfigSelectors.enabledOAuthSSO(store.getState()); expect(result).toBe(true); }); }); describe('enabledTelemetryChat', () => { it('should return langfuse value from store when defined', () => { const store = initServerConfigStore({ serverConfig: { telemetry: { langfuse: true }, aiProvider: {}, }, }); const result = serverConfigSelectors.enabledTelemetryChat(store.getState()); expect(result).toBe(true); }); it('should return false when langfuse is not defined', () => { const store = initServerConfigStore({ serverConfig: { telemetry: {}, aiProvider: {}, }, }); const result = serverConfigSelectors.enabledTelemetryChat(store.getState()); expect(result).toBe(false); }); }); });