Add whisper docker dependency status to gateway dashboard
This commit is contained in:
@@ -11,6 +11,7 @@ import { createCanvasHandlers } from './canvas.js';
|
||||
import { createConfigHandlers, redactConfig } from './config.js';
|
||||
import { createPairingHandlers } from './pairing.js';
|
||||
import type { LocalBackendStatus, LocalBackendControlResult } from './localBackends.js';
|
||||
import type { DockerDependencyStatus } from './dockerDependencies.js';
|
||||
import { PairingManager } from '../../channels/pairing.js';
|
||||
import { LaneQueue } from '../lane-queue.js';
|
||||
import { CanvasStore } from '../canvas-store.js';
|
||||
@@ -283,6 +284,36 @@ describe('system handlers', () => {
|
||||
expect(getPath(result.result, 'updatedModels')).toEqual(['llama3.2', 'nomic-embed-text']);
|
||||
});
|
||||
|
||||
it('system.dockerDependencies returns empty list when callback is not provided', async () => {
|
||||
const req: GatewayRequest = { id: 42, method: 'system.dockerDependencies' };
|
||||
const result = await handlers['system.dockerDependencies'](req) as GatewayResponse;
|
||||
expect(getPath(result.result, 'dependencies')).toEqual([]);
|
||||
});
|
||||
|
||||
it('system.dockerDependencies returns dependency statuses from callback', async () => {
|
||||
const getDockerDependencies = vi.fn(async (): Promise<DockerDependencyStatus[]> => ([
|
||||
{
|
||||
id: 'whisper',
|
||||
name: 'Whisper (whisper.cpp)',
|
||||
service: 'whisper-server',
|
||||
configured: true,
|
||||
state: 'running',
|
||||
health: 'healthy',
|
||||
statusText: 'Up 10 minutes (healthy)',
|
||||
containerName: 'flynn-whisper-server-1',
|
||||
},
|
||||
]));
|
||||
const handlers = createSystemHandlers({
|
||||
...deps,
|
||||
getDockerDependencies,
|
||||
});
|
||||
const req: GatewayRequest = { id: 43, method: 'system.dockerDependencies' };
|
||||
const result = await handlers['system.dockerDependencies'](req) as GatewayResponse;
|
||||
expect(getDockerDependencies).toHaveBeenCalledTimes(1);
|
||||
expect(getPath(result.result, 'dependencies', '0', 'id')).toBe('whisper');
|
||||
expect(getPath(result.result, 'dependencies', '0', 'state')).toBe('running');
|
||||
});
|
||||
|
||||
it('system.presence returns empty result when getPresence is not provided', async () => {
|
||||
const req: GatewayRequest = { id: 4, method: 'system.presence' };
|
||||
const result = await handlers['system.presence'](req) as GatewayResponse;
|
||||
|
||||
Reference in New Issue
Block a user