38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { describe, expect, test, vi } from 'vitest';
|
|
|
|
import {
|
|
abortManagedCodexProcess,
|
|
managedCodexCommand,
|
|
} from '../../src/codex-process';
|
|
|
|
describe('managed Codex process', () => {
|
|
test('launches Codex in a job-specific process session', () => {
|
|
const command = managedCodexCommand({
|
|
jobId: 'job-1',
|
|
pidFile: '/home/alice/.codex/job-1.pid',
|
|
command: ['codex', 'exec', '--json', 'fix it'],
|
|
});
|
|
|
|
expect(command.slice(0, 2)).toEqual(['python3', '-c']);
|
|
expect(command).toContain('/home/alice/.codex/job-1.pid');
|
|
expect(command).toContain('job-1');
|
|
expect(command.slice(-4)).toEqual(['codex', 'exec', '--json', 'fix it']);
|
|
});
|
|
|
|
test('invokes an isolated in-box kill for the matching job', async () => {
|
|
const execute = vi.fn().mockResolvedValue({ exitCode: 0, output: '' });
|
|
|
|
await abortManagedCodexProcess({
|
|
jobId: 'job-1',
|
|
pidFile: '/home/alice/.codex/job-1.pid',
|
|
execute,
|
|
});
|
|
|
|
expect(execute).toHaveBeenCalledOnce();
|
|
const [command] = execute.mock.calls[0] as [string[]];
|
|
expect(command.slice(0, 2)).toEqual(['python3', '-c']);
|
|
expect(command).toContain('/home/alice/.codex/job-1.pid');
|
|
expect(command).toContain('job-1');
|
|
});
|
|
});
|