fix(worker): make cancellation teardown failure-safe
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
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');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user