File size: 1,029 Bytes
cf06504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import assert from 'node:assert/strict';
import { mkdtemp, writeFile } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import path from 'node:path';
import { TrainingManager } from './training-manager.mjs';

const root = await mkdtemp(path.join(tmpdir(), 'aide-training-'));
await writeFile(path.join(root, 'manifest.json'), JSON.stringify({ jobs: [{ id: 'safe', name: 'Safe', command: 'node', args: ['--version'] }] }));
const manager = new TrainingManager({ manifestPath: path.join(root, 'manifest.json'), workspace: root, spawnProcess: () => ({ stdout: { on() {} }, stderr: { on() {} }, once() {}, kill() {} }) });
await manager.load();
await assert.rejects(Promise.resolve().then(() => manager.start('safe', false)), /approval/);
assert.deepEqual(manager.start('safe', true), { id: 'safe', status: 'running' });
await assert.rejects(Promise.resolve().then(() => manager.start('safe', true)), /already running/);
assert.deepEqual(manager.stop(), { status: 'stopped' });
console.log('training manager test passed');