@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
text/typescript
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);
});
});