import { VirtualKeyConfig, ProviderConfig, BudgetConfig, RateLimitConfig } from './pages/virtual-keys.page' /** * Factory function to create virtual key test data */ export function createVirtualKeyData(overrides: Partial = {}): VirtualKeyConfig { const timestamp = Date.now() return { name: `Test VK ${timestamp}`, description: 'E2E test virtual key', isActive: true, providerConfigs: [], ...overrides, } } /** * Factory function to create virtual key with single provider */ export function createVirtualKeyWithProvider( provider: string, vkOverrides: Partial = {} ): VirtualKeyConfig { const timestamp = Date.now() return { name: `Test VK ${provider} ${timestamp}`, description: `Virtual key for ${provider}`, isActive: true, providerConfigs: [ { provider, weight: 1.0, allowedModels: ['*'], keyIds: ['*'], }, ], ...vkOverrides, } } /** * Factory function to create virtual key with budget */ export function createVirtualKeyWithBudget( budget: BudgetConfig, vkOverrides: Partial = {} ): VirtualKeyConfig { const timestamp = Date.now() return { name: `Test VK Budget ${timestamp}`, description: 'Virtual key with budget configuration', isActive: true, budget, ...vkOverrides, } } /** * Factory function to create virtual key with rate limits */ export function createVirtualKeyWithRateLimit( rateLimit: RateLimitConfig, vkOverrides: Partial = {} ): VirtualKeyConfig { const timestamp = Date.now() return { name: `Test VK RateLimit ${timestamp}`, description: 'Virtual key with rate limit configuration', isActive: true, rateLimit, ...vkOverrides, } } /** * Factory function to create virtual key with multiple providers */ export function createVirtualKeyWithMultipleProviders( providers: string[], vkOverrides: Partial = {} ): VirtualKeyConfig { const timestamp = Date.now() const weight = 1.0 / providers.length return { name: `Test VK Multi ${timestamp}`, description: `Virtual key with ${providers.length} providers`, isActive: true, providerConfigs: providers.map((provider) => ({ provider, weight, allowedModels: ['*'], keyIds: ['*'], })), ...vkOverrides, } } /** * Factory function to create provider config */ export function createProviderConfig(overrides: Partial = {}): ProviderConfig { return { provider: 'openai', weight: 1.0, allowedModels: ['*'], keyIds: ['*'], ...overrides, } } /** * Sample budget configurations */ export const SAMPLE_BUDGETS: Record = { small: { maxLimit: 10, resetDuration: '1M', }, medium: { maxLimit: 100, resetDuration: '1M', }, large: { maxLimit: 1000, resetDuration: '1M', }, daily: { maxLimit: 50, resetDuration: '1d', }, weekly: { maxLimit: 200, resetDuration: '1w', }, } /** * Sample rate limit configurations */ export const SAMPLE_RATE_LIMITS: Record = { conservative: { tokenMaxLimit: 10000, tokenResetDuration: '1h', requestMaxLimit: 100, requestResetDuration: '1h', }, moderate: { tokenMaxLimit: 100000, tokenResetDuration: '1h', requestMaxLimit: 1000, requestResetDuration: '1h', }, aggressive: { tokenMaxLimit: 1000000, tokenResetDuration: '1h', requestMaxLimit: 10000, requestResetDuration: '1h', }, tokenOnly: { tokenMaxLimit: 50000, tokenResetDuration: '1h', }, requestOnly: { requestMaxLimit: 500, requestResetDuration: '1h', }, } /** * Reset duration options */ export const RESET_DURATIONS = [ { label: '1 Hour', value: '1h' }, { label: '1 Day', value: '1d' }, { label: '1 Week', value: '1w' }, { label: '1 Month', value: '1M' }, ] as const