From 8d1fd61bb4446d7ed6bcd826e25f86691e9ef5ec Mon Sep 17 00:00:00 2001 From: Marcos Paulo Diniz Date: Fri, 7 Aug 2026 14:02:53 -0300 Subject: [PATCH] fix(notifications): omit empty incident links --- .../notifications/providers/rocketChat.ts | 2 +- .../notifications/rocketChatProvider.test.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/src/domain/notifications/providers/rocketChat.ts b/server/src/domain/notifications/providers/rocketChat.ts index 217dfa795..f5d224439 100644 --- a/server/src/domain/notifications/providers/rocketChat.ts +++ b/server/src/domain/notifications/providers/rocketChat.ts @@ -109,7 +109,7 @@ export class RocketChatProvider extends NotificationProvider { }); } - if (message.content.incident) { + if (message.content.incident?.url.trim()) { fields.push({ title: "Incident", value: message.content.incident.url, diff --git a/server/test/unit/providers/notifications/rocketChatProvider.test.ts b/server/test/unit/providers/notifications/rocketChatProvider.test.ts index 7a5b1f2a5..dcf1001d0 100644 --- a/server/test/unit/providers/notifications/rocketChatProvider.test.ts +++ b/server/test/unit/providers/notifications/rocketChatProvider.test.ts @@ -201,6 +201,24 @@ describe("RocketChatProvider", () => { ]); }); + it("omits the incident field when its URL is empty", async () => { + const { provider } = createProvider(); + const message = makeMessageWithIncident(); + + await provider.sendMessage( + makeNotification({ type: "rocket_chat" }), + makeMessage({ + content: { + ...message.content, + incident: { ...message.content.incident!, url: "" }, + }, + }) + ); + + const fields = mockGotPost.mock.calls[0][1].json.attachments[0].fields; + expect(fields).not.toContainEqual(expect.objectContaining({ title: "Incident" })); + }); + it("returns false when the message webhook URL is missing", async () => { const { provider } = createProvider();