Skip to content

Commit

Permalink
Add unit tests for getProviderInfo function in api.models module.
Browse files Browse the repository at this point in the history
  • Loading branch information
gru-agent[bot] authored Jan 25, 2025
1 parent df766c9 commit 3afd524
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions app/routes/api.models.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { getProviderInfo, cachedProviders, cachedDefaultProvider } from './api.models';
import { LLMManager } from '~/lib/modules/llm/manager';
import type { ModelInfo } from '~/lib/modules/llm/types';

vi.mock('~/lib/modules/llm/manager');

describe('getProviderInfo', () => {
beforeEach(() => {
vi.resetModules();
vi.clearAllMocks();
});

const mockModelInfo: ModelInfo = {
name: 'test-model',
label: 'Test Model',
provider: 'test-provider',
maxTokenAllowed: 1000,
};

const mockProvider = {
name: 'test-provider',
staticModels: [mockModelInfo],
getApiKeyLink: 'https://test.com/api-key',
labelForGetApiKey: 'Get API Key',
icon: 'test-icon',
};

it('should return cached providers and default provider if already cached', () => {
const llmManager = {
getAllProviders: vi.fn().mockReturnValue([mockProvider]),
getDefaultProvider: vi.fn().mockReturnValue(mockProvider),
} as unknown as LLMManager;

const result1 = getProviderInfo(llmManager);
expect(result1.providers).toHaveLength(1);
expect(result1.providers[0]).toEqual({
name: mockProvider.name,
staticModels: mockProvider.staticModels,
getApiKeyLink: mockProvider.getApiKeyLink,
labelForGetApiKey: mockProvider.labelForGetApiKey,
icon: mockProvider.icon,
});
expect(result1.defaultProvider).toEqual({
name: mockProvider.name,
staticModels: mockProvider.staticModels,
getApiKeyLink: mockProvider.getApiKeyLink,
labelForGetApiKey: mockProvider.labelForGetApiKey,
icon: mockProvider.icon,
});

// Second call should use cached values
const result2 = getProviderInfo(llmManager);
expect(result2).toEqual(result1);
expect(llmManager.getAllProviders).toHaveBeenCalledTimes(1);
expect(llmManager.getDefaultProvider).toHaveBeenCalledTimes(1);
});
});

0 comments on commit 3afd524

Please sign in to comment.