fix claude turn teardown and start CI watchers immediately

This commit is contained in:
Eyejoker
2026-03-23 08:55:48 +09:00
parent 7100a13b39
commit 42d721a9ec
11 changed files with 232 additions and 11 deletions

View File

@@ -28,6 +28,7 @@ describe('GroupQueue', () => {
beforeEach(() => {
vi.useFakeTimers();
vi.clearAllMocks();
queue = new GroupQueue();
});
@@ -87,6 +88,38 @@ describe('GroupQueue', () => {
await vi.advanceTimersByTimeAsync(10);
});
it('does not pipe follow-up messages after stdin close was requested', async () => {
const ipcDir = '/tmp/ejclaw-test-data/ipc/group-folder';
let releaseRun!: (value: boolean) => void;
const blocker = new Promise<boolean>((resolve) => {
releaseRun = resolve;
});
const processMessages = vi.fn(async () => await blocker);
queue.setProcessMessagesFn(processMessages);
queue.enqueueMessageCheck('group1@g.us', ipcDir);
await vi.advanceTimersByTimeAsync(10);
vi.mocked(fs.mkdirSync).mockClear();
vi.mocked(fs.writeFileSync).mockClear();
vi.mocked(fs.renameSync).mockClear();
queue.closeStdin('group1@g.us');
vi.mocked(fs.mkdirSync).mockClear();
vi.mocked(fs.writeFileSync).mockClear();
vi.mocked(fs.renameSync).mockClear();
expect(queue.sendMessage('group1@g.us', '후속 메시지')).toBe(false);
expect(fs.mkdirSync).not.toHaveBeenCalled();
expect(fs.writeFileSync).not.toHaveBeenCalled();
expect(fs.renameSync).not.toHaveBeenCalled();
releaseRun(true);
await vi.advanceTimersByTimeAsync(10);
});
// --- Global concurrency limit ---
it('respects global concurrency limit', async () => {