From d33e8f3c08788d29e9127b4b6b62b2ba5d64fc84 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2026 00:06:12 +0000 Subject: [PATCH] test(terminal): let cleanup fixture exit on request --- .../src/terminal/worker-terminal-manager.test.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/server/src/terminal/worker-terminal-manager.test.ts b/packages/server/src/terminal/worker-terminal-manager.test.ts index d953d6cb69..21edc39ecd 100644 --- a/packages/server/src/terminal/worker-terminal-manager.test.ts +++ b/packages/server/src/terminal/worker-terminal-manager.test.ts @@ -771,10 +771,16 @@ it("never adopts a live worker's terminals after a kill cleanup it could not fin temporaryDirs.push(cwd); const first = await startRealWorkerManager({ paseoHome }); manager = first; + const exitRequestPath = join(cwd, "exit-requested"); const ending = await first.createTerminal({ workspaceId: "ws-unfinished-kill", cwd, - ...nodeTerminalCommand("setInterval(() => {}, 1000);"), + ...nodeTerminalCommand(` + const { existsSync } = require("node:fs"); + setInterval(() => { + if (existsSync(${JSON.stringify(exitRequestPath)})) process.exit(0); + }, 25); + `), }); const remaining = await first.createTerminal({ workspaceId: "ws-unfinished-kill", @@ -782,7 +788,6 @@ it("never adopts a live worker's terminals after a kill cleanup it could not fin ...nodeTerminalCommand("setInterval(() => {}, 1000);"), }); const pids = await recordedTerminalPids(paseoHome); - const endingPid = pids.get(ending.id)!; const remainingPid = pids.get(remaining.id)!; // A kill cleanup whose process table read fails signals nothing and leaves the worker live. @@ -797,7 +802,7 @@ it("never adopts a live worker's terminals after a kill cleanup it could not fin expect((await readUnconfirmedTerminalCleanup(paseoHome)).length).toBeGreaterThan(0); // One terminal ends on its own: the live worker rewrites its record from memory. - process.kill(endingPid, "SIGKILL"); + writeFileSync(exitRequestPath, ""); await waitForCondition( async () => !(await recordedTerminalPids(paseoHome)).has(ending.id), 10000,