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();