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