aide-sovereign-workbench / daemon /test-training-manager.mjs
Ferrell Synthetic Intelligence
Add safe Training Room job execution
cf06504
Raw
History Blame Contribute Delete
1.03 kB
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');