From 6ea47c3f025ba8452a2b19c1cac309aec3a1d550 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 21 Feb 2026 23:37:12 +0000 Subject: [PATCH] test(outbound): table-drive pre-aborted action cases --- .../outbound/message-action-runner.test.ts | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/src/infra/outbound/message-action-runner.test.ts b/src/infra/outbound/message-action-runner.test.ts index 80d3e5446c8..23c1fb8568b 100644 --- a/src/infra/outbound/message-action-runner.test.ts +++ b/src/infra/outbound/message-action-runner.test.ts @@ -361,39 +361,38 @@ describe("runMessageAction context isolation", () => { ).rejects.toThrow(/Cross-context messaging denied/); }); - it("aborts send when abortSignal is already aborted", async () => { + it.each([ + { + name: "send", + run: (abortSignal: AbortSignal) => + runDrySend({ + cfg: slackConfig, + actionParams: { + channel: "slack", + target: "#C12345678", + message: "hi", + }, + abortSignal, + }), + }, + { + name: "broadcast", + run: (abortSignal: AbortSignal) => + runDryAction({ + cfg: slackConfig, + action: "broadcast", + actionParams: { + targets: ["channel:C12345678"], + channel: "slack", + message: "hi", + }, + abortSignal, + }), + }, + ])("aborts $name when abortSignal is already aborted", async ({ run }) => { const controller = new AbortController(); controller.abort(); - - await expect( - runDrySend({ - cfg: slackConfig, - actionParams: { - channel: "slack", - target: "#C12345678", - message: "hi", - }, - abortSignal: controller.signal, - }), - ).rejects.toMatchObject({ name: "AbortError" }); - }); - - it("aborts broadcast when abortSignal is already aborted", async () => { - const controller = new AbortController(); - controller.abort(); - - await expect( - runDryAction({ - cfg: slackConfig, - action: "broadcast", - actionParams: { - targets: ["channel:C12345678"], - channel: "slack", - message: "hi", - }, - abortSignal: controller.signal, - }), - ).rejects.toMatchObject({ name: "AbortError" }); + await expect(run(controller.signal)).rejects.toMatchObject({ name: "AbortError" }); }); });