@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.
82 lines (63 loc) • 2.35 kB
text/typescript
import { describe, expect, it, vi } from 'vitest';
import { knowledgeEnv } from '@/config/knowledge';
import { getAppConfig } from '@/envs/app';
import { SystemEmbeddingConfig } from '@/types/knowledgeBase';
import { FilesConfigItem } from '@/types/user/settings/filesConfig';
import { getServerDefaultAgentConfig, getServerDefaultFilesConfig } from './index';
import { parseAgentConfig } from './parseDefaultAgent';
import { parseFilesConfig } from './parseFilesConfig';
vi.mock('@/envs/app', () => ({
getAppConfig: vi.fn(),
}));
vi.mock('@/config/knowledge', () => ({
knowledgeEnv: {
DEFAULT_FILES_CONFIG: 'test_config',
},
}));
vi.mock('./parseDefaultAgent', () => ({
parseAgentConfig: vi.fn(),
}));
vi.mock('./parseFilesConfig', () => ({
parseFilesConfig: vi.fn(),
}));
describe('getServerDefaultAgentConfig', () => {
it('should return parsed agent config', () => {
const mockConfig = { key: 'value' };
vi.mocked(getAppConfig).mockReturnValue({
DEFAULT_AGENT_CONFIG: 'test_agent_config',
} as any);
vi.mocked(parseAgentConfig).mockReturnValue(mockConfig);
const result = getServerDefaultAgentConfig();
expect(parseAgentConfig).toHaveBeenCalledWith('test_agent_config');
expect(result).toEqual(mockConfig);
});
it('should return empty object if parseAgentConfig returns undefined', () => {
vi.mocked(getAppConfig).mockReturnValue({
DEFAULT_AGENT_CONFIG: 'test_agent_config',
} as any);
vi.mocked(parseAgentConfig).mockReturnValue(undefined);
const result = getServerDefaultAgentConfig();
expect(result).toEqual({});
});
});
describe('getServerDefaultFilesConfig', () => {
it('should return parsed files config', () => {
const mockEmbeddingModel: FilesConfigItem = {
model: 'test-model',
provider: 'test-provider',
};
const mockRerankerModel: FilesConfigItem = {
model: 'test-reranker',
provider: 'test-provider',
};
const mockConfig: SystemEmbeddingConfig = {
embeddingModel: mockEmbeddingModel,
queryMode: 'hybrid',
rerankerModel: mockRerankerModel,
};
vi.mocked(parseFilesConfig).mockReturnValue(mockConfig);
const result = getServerDefaultFilesConfig();
expect(parseFilesConfig).toHaveBeenCalledWith('test_config');
expect(result).toEqual(mockConfig);
});
});