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.

60 lines (50 loc) 1.54 kB
import { describe, expect, it } from 'vitest'; import { FeatureFlagsSchema, mapFeatureFlagsEnvToState } from './schema'; describe('FeatureFlagsSchema', () => { it('should validate correct feature flags', () => { const result = FeatureFlagsSchema.safeParse({ webrtc_sync: true, language_model_settings: false, openai_api_key: true, openai_proxy_url: false, create_session: true, edit_agent: false, dalle: true, }); expect(result.success).toBe(true); }); it('should reject invalid feature flags', () => { const result = FeatureFlagsSchema.safeParse({ webrtc_sync: 'yes', // Invalid type, should be boolean }); expect(result.success).toBe(false); }); }); describe('mapFeatureFlagsEnvToState', () => { it('should correctly map feature flags to state', () => { const config = { webrtc_sync: true, language_model_settings: false, openai_api_key: true, openai_proxy_url: false, create_session: true, edit_agent: false, dalle: true, check_updates: true, welcome_suggest: true, }; const expectedState = { enableWebrtc: true, isAgentEditable: false, showCreateSession: true, showLLM: false, showOpenAIApiKey: true, showOpenAIProxyUrl: false, showDalle: true, enableCheckUpdates: true, showWelcomeSuggest: true, }; const mappedState = mapFeatureFlagsEnvToState(config); expect(mappedState).toEqual(expectedState); }); });