From 8817d322990d2f3a079baf57bafe39bc9dd89e0d Mon Sep 17 00:00:00 2001 From: Harshith1702 Date: Thu, 19 Mar 2026 10:48:37 +0000 Subject: [PATCH 1/3] test(message-parser): add coverage for joinEmoji behavior --- .../message-parser/tests/joinEmoji.test.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 packages/message-parser/tests/joinEmoji.test.ts diff --git a/packages/message-parser/tests/joinEmoji.test.ts b/packages/message-parser/tests/joinEmoji.test.ts new file mode 100644 index 0000000000000..eaf9dda293e51 --- /dev/null +++ b/packages/message-parser/tests/joinEmoji.test.ts @@ -0,0 +1,27 @@ +import { plain, emoji, reducePlainTexts } from '../src/utils'; + +describe('joinEmoji behavior through reducePlainTexts', () => { + it('keeps emoji when alone', () => { + const result = reducePlainTexts([emoji('smile')]); + expect(result[0].type).toBe('EMOJI'); + }); + + it('merges consecutive plain texts', () => { + const result = reducePlainTexts([ + plain('hello '), + plain('world') + ]); + + expect(result[0].value).toBe('hello world'); + }); + + it('handles emoji between plain texts', () => { + const result = reducePlainTexts([ + plain('hello'), + emoji('smile'), + plain('world') + ]); + + expect(result.length).toBeGreaterThan(0); + }); +}); \ No newline at end of file From 0c3c3b15e073a03b3cbaec25de27c1a03705b90b Mon Sep 17 00:00:00 2001 From: Harshith1702 Date: Thu, 19 Mar 2026 12:50:15 +0000 Subject: [PATCH 2/3] fix test: strengthen joinEmoji assertion to verify actual merge behavior --- packages/message-parser/tests/joinEmoji.test.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/message-parser/tests/joinEmoji.test.ts b/packages/message-parser/tests/joinEmoji.test.ts index eaf9dda293e51..98e7ed1f7f78f 100644 --- a/packages/message-parser/tests/joinEmoji.test.ts +++ b/packages/message-parser/tests/joinEmoji.test.ts @@ -9,19 +9,24 @@ describe('joinEmoji behavior through reducePlainTexts', () => { it('merges consecutive plain texts', () => { const result = reducePlainTexts([ plain('hello '), - plain('world') + plain('world'), ]); - expect(result[0].value).toBe('hello world'); + expect(result).toHaveLength(1); + expect(result[0]).toMatchObject({ type: 'PLAIN_TEXT', value: 'hello world' }); }); - it('handles emoji between plain texts', () => { + it('converts emoji with plain text neighbors to shortCode and merges', () => { const result = reducePlainTexts([ plain('hello'), emoji('smile'), - plain('world') + plain('world'), ]); - - expect(result.length).toBeGreaterThan(0); + + expect(result).toHaveLength(1); + expect(result[0]).toMatchObject({ + type: 'PLAIN_TEXT', + value: 'hello:smile:world', + }); }); }); \ No newline at end of file From cc4f44f2ee83f8e599f4baca5baf098057b84ccd Mon Sep 17 00:00:00 2001 From: Harshith1702 Date: Thu, 19 Mar 2026 13:36:01 +0000 Subject: [PATCH 3/3] chore: add changeset --- .changeset/message-parser-joinEmoji-tests.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/message-parser-joinEmoji-tests.md diff --git a/.changeset/message-parser-joinEmoji-tests.md b/.changeset/message-parser-joinEmoji-tests.md new file mode 100644 index 0000000000000..825e488eb1a92 --- /dev/null +++ b/.changeset/message-parser-joinEmoji-tests.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/message-parser": patch +--- + +Add test coverage for joinEmoji behavior through reducePlainTexts