From 26ddce31298a08455d6c0d6822656bcab19f0342 Mon Sep 17 00:00:00 2001 From: Qi Ke Date: Thu, 29 Jan 2026 00:18:25 -0500 Subject: [PATCH] test(signal): add tests for group ID case preservation --- src/channels/plugins/normalize/signal.test.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/channels/plugins/normalize/signal.test.ts b/src/channels/plugins/normalize/signal.test.ts index 6fd200f3d..628532839 100644 --- a/src/channels/plugins/normalize/signal.test.ts +++ b/src/channels/plugins/normalize/signal.test.ts @@ -3,6 +3,28 @@ import { describe, expect, it } from "vitest"; import { looksLikeSignalTargetId, normalizeSignalMessagingTarget } from "./signal.js"; describe("signal target normalization", () => { + describe("group targets", () => { + it("preserves case for base64-encoded group IDs", () => { + // Signal group IDs are base64-encoded and case-sensitive + expect( + normalizeSignalMessagingTarget("group:igVOP2EJR1sBXYYwsLhif/AEMTJWtiDiTyu88GWP5ZQ="), + ).toBe("group:igVOP2EJR1sBXYYwsLhif/AEMTJWtiDiTyu88GWP5ZQ="); + }); + + it("handles signal: prefix with group targets", () => { + expect( + normalizeSignalMessagingTarget("signal:group:igVOP2EJR1sBXYYwsLhif/AEMTJWtiDiTyu88GWP5ZQ="), + ).toBe("group:igVOP2EJR1sBXYYwsLhif/AEMTJWtiDiTyu88GWP5ZQ="); + }); + + it("accepts group: prefix for target detection", () => { + expect(looksLikeSignalTargetId("group:igVOP2EJR1sBXYYwsLhif/AEMTJWtiDiTyu88GWP5ZQ=")).toBe( + true, + ); + expect(looksLikeSignalTargetId("signal:group:someGroupId")).toBe(true); + }); + }); + it("normalizes uuid targets by stripping uuid:", () => { expect(normalizeSignalMessagingTarget("uuid:123E4567-E89B-12D3-A456-426614174000")).toBe( "123e4567-e89b-12d3-a456-426614174000",