| |
| |
| |
| |
| |
|
|
| import fs from 'node:fs'; |
| import { beforeEach, describe, expect, it, vi } from 'vitest'; |
| import type { GemmaModelRouterSettings } from '@google/gemini-cli-core'; |
|
|
| const mockGetBinaryPath = vi.hoisted(() => vi.fn()); |
| const mockIsServerRunning = vi.hoisted(() => vi.fn()); |
| const mockStartServer = vi.hoisted(() => vi.fn()); |
|
|
| vi.mock('../commands/gemma/platform.js', () => ({ |
| getBinaryPath: mockGetBinaryPath, |
| isServerRunning: mockIsServerRunning, |
| })); |
|
|
| vi.mock('../commands/gemma/start.js', () => ({ |
| startServer: mockStartServer, |
| })); |
|
|
| import { LiteRtServerManager } from './liteRtServerManager.js'; |
|
|
| describe('LiteRtServerManager', () => { |
| beforeEach(() => { |
| vi.clearAllMocks(); |
| vi.spyOn(fs, 'existsSync').mockReturnValue(true); |
| mockIsServerRunning.mockResolvedValue(false); |
| mockStartServer.mockResolvedValue(true); |
| }); |
|
|
| it('uses the configured custom binary path when auto-starting', async () => { |
| mockGetBinaryPath.mockReturnValue('/user/lit'); |
|
|
| const settings: GemmaModelRouterSettings = { |
| enabled: true, |
| binaryPath: '/workspace/evil', |
| classifier: { |
| host: 'http://localhost:8123', |
| }, |
| }; |
|
|
| await LiteRtServerManager.ensureRunning(settings); |
|
|
| expect(mockGetBinaryPath).toHaveBeenCalledTimes(1); |
| expect(fs.existsSync).toHaveBeenCalledWith('/user/lit'); |
| expect(mockStartServer).toHaveBeenCalledWith('/user/lit', 8123); |
| }); |
|
|
| it('falls back to the default binary path when no custom path is configured', async () => { |
| mockGetBinaryPath.mockReturnValue('/default/lit'); |
|
|
| const settings: GemmaModelRouterSettings = { |
| enabled: true, |
| classifier: { |
| host: 'http://localhost:9379', |
| }, |
| }; |
|
|
| await LiteRtServerManager.ensureRunning(settings); |
|
|
| expect(mockGetBinaryPath).toHaveBeenCalledTimes(1); |
| expect(fs.existsSync).toHaveBeenCalledWith('/default/lit'); |
| expect(mockStartServer).toHaveBeenCalledWith('/default/lit', 9379); |
| }); |
| }); |
|
|