diff --git a/src/infra/secure-random.test.ts b/src/infra/secure-random.test.ts index 6b2ea728ebd..2a595900c7b 100644 --- a/src/infra/secure-random.test.ts +++ b/src/infra/secure-random.test.ts @@ -40,4 +40,13 @@ describe("secure-random", () => { expect(cryptoMocks.randomBytes).toHaveBeenCalledWith(18); expect(token18).toBe(Buffer.alloc(18, 0xab).toString("base64url")); }); + + it("supports zero-byte tokens without rewriting the requested size", () => { + cryptoMocks.randomBytes.mockClear(); + + const token = generateSecureToken(0); + + expect(cryptoMocks.randomBytes).toHaveBeenCalledWith(0); + expect(token).toBe(""); + }); }); diff --git a/src/infra/system-message.test.ts b/src/infra/system-message.test.ts index 5cb1d4be87f..980c852eeb4 100644 --- a/src/infra/system-message.test.ts +++ b/src/infra/system-message.test.ts @@ -13,6 +13,7 @@ describe("system-message", () => { it.each([ { input: `${SYSTEM_MARK} already prefixed`, expected: true }, { input: ` ${SYSTEM_MARK} hello`, expected: true }, + { input: SYSTEM_MARK, expected: true }, { input: "", expected: false }, { input: "hello", expected: false }, ])("detects marks for %j", ({ input, expected }) => { @@ -24,4 +25,8 @@ describe("system-message", () => { `${SYSTEM_MARK} already prefixed`, ); }); + + it("preserves mark-only messages after trimming", () => { + expect(prefixSystemMessage(` ${SYSTEM_MARK} `)).toBe(SYSTEM_MARK); + }); });