From 777dcad227bc204d9460098568c09ff105984efb Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Sun, 2 Aug 2026 15:06:13 -0400 Subject: [PATCH 1/2] fix: destructure stdout in Cron._readCrontab() --- src/scheduler/cron.js | 11 +++++------ tests/unit/scheduler/cron.test.js | 6 +++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/scheduler/cron.js b/src/scheduler/cron.js index 150ecb31..1e963d77 100644 --- a/src/scheduler/cron.js +++ b/src/scheduler/cron.js @@ -104,12 +104,11 @@ export const Cron = { */ async _readCrontab() { try { - return ( - (await _execOverride("crontab -l 2>&1", { - encoding: "utf-8", - stdio: ["pipe", "pipe", "pipe"], - })) || "" - ).trim(); + const { stdout, stderr } = await _execOverride("crontab -l 2>&1", { + encoding: "utf-8", + stdio: ["pipe", "pipe", "pipe"], + }); + return (stdout || "").trim(); } catch (_err) { return ""; } diff --git a/tests/unit/scheduler/cron.test.js b/tests/unit/scheduler/cron.test.js index 0f380360..1d0e6910 100644 --- a/tests/unit/scheduler/cron.test.js +++ b/tests/unit/scheduler/cron.test.js @@ -12,18 +12,18 @@ function mockExec(command, options) { // Intercept crontab commands if (command.includes("crontab -l")) { - return Promise.resolve(mockCrontabContent || ""); + return Promise.resolve({ stdout: mockCrontabContent || "", stderr: "" }); } if (command.includes("crontab -")) { // Read from stdin (the content to install) const stdin = options?.input || ""; mockCrontabContent = stdin; - return Promise.resolve(""); + return Promise.resolve({ stdout: "", stderr: "" }); } if (command.includes("which crontab")) { - return Promise.resolve("/usr/bin/crontab"); + return Promise.resolve({ stdout: "/usr/bin/crontab", stderr: "" }); } // Reject unknown commands to prevent hanging From 136f2ca97b95aa81c7dabb4ff773792a1f1b9d5c Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Sun, 2 Aug 2026 15:19:35 -0400 Subject: [PATCH 2/2] fix: remove unused stderr variable from _readCrontab destructuring --- src/scheduler/cron.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scheduler/cron.js b/src/scheduler/cron.js index 1e963d77..0356cad9 100644 --- a/src/scheduler/cron.js +++ b/src/scheduler/cron.js @@ -104,7 +104,7 @@ export const Cron = { */ async _readCrontab() { try { - const { stdout, stderr } = await _execOverride("crontab -l 2>&1", { + const { stdout } = await _execOverride("crontab -l 2>&1", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], });