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.

202 lines (186 loc) • 6.76 kB
import { describe, expect, it } from 'vitest'; import { UserStore } from '@/store/user'; import { AWSBedrockKeyVault, AzureOpenAIKeyVault, OpenAICompatibleKeyVault, } from '@/types/user/settings'; import { merge } from '@/utils/merge'; import { initialSettingsState } from '../../settings/initialState'; import { keyVaultsConfigSelectors } from './keyVaults'; describe('keyVaultsConfigSelectors', () => { describe('isProviderEndpointNotEmpty', () => { describe('OpenAICompatibleKeyVault', () => { it('should return true if provider endpoint is not empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { openai: { endpoint: 'endpoint', } as OpenAICompatibleKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('openai')(s)).toBe(true); }); it('should return false if provider endpoint is empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { openai: { endpoint: undefined, } as OpenAICompatibleKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('openai')(s)).toBe(false); }); }); describe('AzureOpenAIKeyVault', () => { it('should return true if provider endpoint is not empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { azure: { baseURL: 'baseURL', } as AzureOpenAIKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('azure')(s)).toBe(true); }); it('should return false if provider endpoint is empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { azure: { baseURL: undefined, } as AzureOpenAIKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('azure')(s)).toBe(false); }); }); // Always return false for AWSBedrockKeyVault describe('AWSBedrockKeyVault', () => { it('should return false if provider region is not empty for AWSBedrockKeyVault', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { bedrock: { region: 'region', } as AWSBedrockKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('bedrock')(s)).toBe(false); }); it('should return false if provider region is empty for AWSBedrockKeyVault', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { bedrock: { region: undefined, } as AWSBedrockKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderEndpointNotEmpty('bedrock')(s)).toBe(false); }); }); }); describe('isProviderApiKeyNotEmpty', () => { describe('OpenAICompatibleKeyVault', () => { it('should return true if provider apikey is not empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { openai: { apiKey: 'apikey', } as OpenAICompatibleKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('openai')(s)).toBe(true); }); it('should return false if provider apikey is empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { openai: { apiKey: undefined, } as OpenAICompatibleKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('openai')(s)).toBe(false); }); }); describe('AzureOpenAIKeyVault', () => { it('should return true if provider apikey is not empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { azure: { apiKey: 'apikey', } as AzureOpenAIKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('azure')(s)).toBe(true); }); it('should return false if provider apikey is empty', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { azure: { apiKey: undefined, } as AzureOpenAIKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('azure')(s)).toBe(false); }); }); describe('AWSBedrockKeyVault', () => { it('should return true if provider accessKeyId is not empty for AWSBedrockKeyVault', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { bedrock: { accessKeyId: 'accessKeyId', } as AWSBedrockKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('bedrock')(s)).toBe(true); }); it('should return true if provider secretAccessKey is not empty for AWSBedrockKeyVault', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { bedrock: { secretAccessKey: 'secretAccessKey', } as AWSBedrockKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('bedrock')(s)).toBe(true); }); it('should return false if provider accessKeyId and secretAccessKey are both empty for AWSBedrockKeyVault', () => { const s = merge(initialSettingsState, { settings: { keyVaults: { bedrock: { accessKeyId: undefined, secretAccessKey: undefined, } as AWSBedrockKeyVault, }, }, }) as unknown as UserStore; expect(keyVaultsConfigSelectors.isProviderApiKeyNotEmpty('bedrock')(s)).toBe(false); }); }); }); });