Skip to content

Commit 9940110

Browse files
committed
fix(telegram): resolve taskkill in crabbox proof
1 parent 73b35cc commit 9940110

2 files changed

Lines changed: 41 additions & 14 deletions

File tree

scripts/e2e/telegram-user-crabbox-proof.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import fs from "node:fs";
1111
import os from "node:os";
1212
import path from "node:path";
1313
import { fileURLToPath } from "node:url";
14+
import { resolveWindowsTaskkillPath } from "../lib/windows-taskkill.mjs";
1415
import { createPnpmRunnerSpawnSpec } from "../pnpm-runner.mjs";
1516
import { readPositiveIntEnv } from "./lib/env-limits.mjs";
1617
import { telegramBotApi } from "./telegram-bot-api.ts";
@@ -618,12 +619,13 @@ export function signalCommandTree(
618619
if (signal === "SIGKILL") {
619620
args.push("/F");
620621
}
621-
const result = runTaskkill("taskkill", args, { stdio: "ignore" });
622+
const taskkillPath = resolveWindowsTaskkillPath();
623+
const result = runTaskkill(taskkillPath, args, { stdio: "ignore" });
622624
if (!result?.error && result?.status === 0) {
623625
return;
624626
}
625627
if (signal !== "SIGKILL") {
626-
const forceResult = runTaskkill("taskkill", [...args, "/F"], { stdio: "ignore" });
628+
const forceResult = runTaskkill(taskkillPath, [...args, "/F"], { stdio: "ignore" });
627629
if (!forceResult?.error && forceResult?.status === 0) {
628630
return;
629631
}

test/scripts/telegram-user-crabbox-proof.test.ts

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,15 @@ import {
2323
startLocalSut,
2424
waitForLog,
2525
} from "../../scripts/e2e/telegram-user-crabbox-proof.ts";
26+
import { resolveWindowsTaskkillPath } from "../../scripts/lib/windows-taskkill.mjs";
2627

2728
const tempDirs: string[] = [];
2829
const posixIt = process.platform === "win32" ? it.skip : it;
2930

31+
function expectedTaskkillPath(): string {
32+
return resolveWindowsTaskkillPath();
33+
}
34+
3035
function makeTempDir(): string {
3136
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-telegram-proof-"));
3237
tempDirs.push(dir);
@@ -364,17 +369,27 @@ setInterval(() => {}, 1000);
364369
platform: "win32",
365370
runTaskkill,
366371
});
367-
expect(runTaskkill).toHaveBeenNthCalledWith(1, "taskkill", ["/PID", "12345", "/T"], {
368-
stdio: "ignore",
369-
});
372+
expect(runTaskkill).toHaveBeenNthCalledWith(
373+
1,
374+
expectedTaskkillPath(),
375+
["/PID", "12345", "/T"],
376+
{
377+
stdio: "ignore",
378+
},
379+
);
370380

371381
signalCommandTree(child, "SIGKILL", {
372382
platform: "win32",
373383
runTaskkill,
374384
});
375-
expect(runTaskkill).toHaveBeenNthCalledWith(2, "taskkill", ["/PID", "12345", "/T", "/F"], {
376-
stdio: "ignore",
377-
});
385+
expect(runTaskkill).toHaveBeenNthCalledWith(
386+
2,
387+
expectedTaskkillPath(),
388+
["/PID", "12345", "/T", "/F"],
389+
{
390+
stdio: "ignore",
391+
},
392+
);
378393
expect(child.kill).not.toHaveBeenCalled();
379394
});
380395

@@ -393,12 +408,22 @@ setInterval(() => {}, 1000);
393408
runTaskkill,
394409
});
395410

396-
expect(runTaskkill).toHaveBeenNthCalledWith(1, "taskkill", ["/PID", "12345", "/T"], {
397-
stdio: "ignore",
398-
});
399-
expect(runTaskkill).toHaveBeenNthCalledWith(2, "taskkill", ["/PID", "12345", "/T", "/F"], {
400-
stdio: "ignore",
401-
});
411+
expect(runTaskkill).toHaveBeenNthCalledWith(
412+
1,
413+
expectedTaskkillPath(),
414+
["/PID", "12345", "/T"],
415+
{
416+
stdio: "ignore",
417+
},
418+
);
419+
expect(runTaskkill).toHaveBeenNthCalledWith(
420+
2,
421+
expectedTaskkillPath(),
422+
["/PID", "12345", "/T", "/F"],
423+
{
424+
stdio: "ignore",
425+
},
426+
);
402427
expect(child.kill).not.toHaveBeenCalled();
403428
});
404429

0 commit comments

Comments
 (0)