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.

74 lines (59 loc) 2.05 kB
import { describe, expect, it, vi } from 'vitest'; import { DEFAULT_FEATURE_FLAGS, mapFeatureFlagsEnvToState } from '@/config/featureFlags'; import { featureFlagsSelectors, serverConfigSelectors } from './selectors'; import { initServerConfigStore } from './store'; describe('featureFlagsSelectors', () => { it('should return feature flags from store', () => { const store = initServerConfigStore({ featureFlags: { ...mapFeatureFlagsEnvToState(DEFAULT_FEATURE_FLAGS), isAgentEditable: false, showLLM: false, showMarket: true, showAiImage: true, }, }); const result = featureFlagsSelectors(store.getState()); expect(result.isAgentEditable).toBe(false); expect(result.showLLM).toBe(false); expect(result.showMarket).toBe(true); expect(result.showAiImage).toBe(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); }); }); });