mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 18:47:51 +00:00
Fixes notification display issues when user or team names contain emojis
and special characters. Previously, mention notifications would show
URL-encoded characters instead of properly formatted names with emojis.
**Before:**
Notification: "John Doe: Hey @%F0%9F%91%8D%20customer%20support please
check this"
**After:**
Notification: "John Doe: Hey @👍 customer support please check this"
48 lines
1.9 KiB
Ruby
48 lines
1.9 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe MessageFormatHelper do
|
|
describe '#transform_user_mention_content' do
|
|
context 'when transform_user_mention_content called' do
|
|
it 'return transformed text correctly' do
|
|
expect(helper.transform_user_mention_content('[@john](mention://user/1/John%20K), check this ticket')).to eq '@john, check this ticket'
|
|
end
|
|
|
|
it 'handles emoji in display names correctly' do
|
|
content = '[@👍 customer support](mention://team/1/%F0%9F%91%8D%20customer%20support), please help'
|
|
expected = '@👍 customer support, please help'
|
|
expect(helper.transform_user_mention_content(content)).to eq expected
|
|
end
|
|
|
|
it 'handles multiple mentions with emojis and spaces' do
|
|
content = 'Hey [@John Doe](mention://user/1/John%20Doe) and [@🚀 Dev Team](mention://team/2/%F0%9F%9A%80%20Dev%20Team)'
|
|
expected = 'Hey @John Doe and @🚀 Dev Team'
|
|
expect(helper.transform_user_mention_content(content)).to eq expected
|
|
end
|
|
|
|
it 'handles emoji-only team names' do
|
|
expect(helper.transform_user_mention_content('[@🔥](mention://team/3/%F0%9F%94%A5) urgent')).to eq '@🔥 urgent'
|
|
end
|
|
|
|
it 'handles special characters in names' do
|
|
expect(helper.transform_user_mention_content('[@user@domain.com](mention://user/4/user%40domain.com) check')).to eq '@user@domain.com check'
|
|
end
|
|
|
|
it 'returns empty string for nil content' do
|
|
expect(helper.transform_user_mention_content(nil)).to eq ''
|
|
end
|
|
|
|
it 'returns empty string for empty content' do
|
|
expect(helper.transform_user_mention_content('')).to eq ''
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '#render_message_content' do
|
|
context 'when render_message_content called' do
|
|
it 'render text correctly' do
|
|
expect(helper.render_message_content('Hi *there*, I am mostly text!')).to eq "<p>Hi <em>there</em>, I am mostly text!</p>\n"
|
|
end
|
|
end
|
|
end
|
|
end
|