| 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'); | |