diff --git a/src/cli/cron-cli/shared.test.ts b/src/cli/cron-cli/shared.test.ts index 8fbfffc48e6..ca593cd5bfd 100644 --- a/src/cli/cron-cli/shared.test.ts +++ b/src/cli/cron-cli/shared.test.ts @@ -1,8 +1,16 @@ -import { describe, expect, it } from "vitest"; +import { beforeEach, describe, expect, it, vi } from "vitest"; import type { CronJob } from "../../cron/types.js"; import type { RuntimeEnv } from "../../runtime.js"; import { getCronChannelOptions, printCronList } from "./shared.js"; +const hoisted = vi.hoisted(() => ({ + listChannelPluginsMock: vi.fn(), +})); + +vi.mock("../../channels/plugins/index.js", () => ({ + listChannelPlugins: hoisted.listChannelPluginsMock, +})); + function createRuntimeLogCapture(): { logs: string[]; runtime: RuntimeEnv } { const logs: string[] = []; const runtime = { @@ -31,6 +39,11 @@ function createBaseJob(overrides: Partial): CronJob { } describe("printCronList", () => { + beforeEach(() => { + hoisted.listChannelPluginsMock.mockReset(); + hoisted.listChannelPluginsMock.mockReturnValue([]); + }); + it("handles job with undefined sessionTarget (#9649)", () => { const { logs, runtime } = createRuntimeLogCapture(); @@ -170,6 +183,12 @@ describe("printCronList", () => { describe("getCronChannelOptions", () => { it("falls back to a generic channel placeholder when no plugins are loaded", () => { + hoisted.listChannelPluginsMock.mockReturnValue([]); expect(getCronChannelOptions()).toBe("last|"); }); + + it("lists discovered channel plugin ids when plugins are available", () => { + hoisted.listChannelPluginsMock.mockReturnValue([{ id: "telegram" }, { id: "signal" }]); + expect(getCronChannelOptions()).toBe("last|telegram|signal"); + }); }); diff --git a/src/tasks/task-executor.test.ts b/src/tasks/task-executor.test.ts index 330170063e3..7404ac78e84 100644 --- a/src/tasks/task-executor.test.ts +++ b/src/tasks/task-executor.test.ts @@ -224,6 +224,7 @@ describe("task-executor", () => { task: "Patch file", startedAt: 10, deliveryStatus: "pending", + notifyPolicy: "silent", }); completeTaskRunByRunId({