import { test } from 'node:test'; import assert from 'node:assert/strict'; import { getEmoticonSearchStr } from './utils'; import { PackImageReader } from './custom-emoji'; import { IEmoji } from './emoji'; test('getEmoticonSearchStr for a PackImageReader with a body returns shortcode + body', () => { const reader = new PackImageReader('cat', 'mxc://server/cat', { body: 'kitten' }); assert.deepEqual(getEmoticonSearchStr(reader), [':cat:', 'kitten']); }); test('getEmoticonSearchStr for a PackImageReader without a body returns just the shortcode string', () => { const reader = new PackImageReader('cat', 'mxc://server/cat', {}); assert.equal(getEmoticonSearchStr(reader), ':cat:'); }); test('getEmoticonSearchStr ignores a non-string body on a PackImageReader', () => { const reader = new PackImageReader('cat', 'mxc://server/cat', { body: 123 as unknown as string, }); assert.equal(getEmoticonSearchStr(reader), ':cat:'); }); test('getEmoticonSearchStr for an IEmoji concats shortcode, label and shortcodes', () => { const emoji = { shortcode: 'smile', label: 'Smiling Face', shortcodes: ['smile', 'happy'], } as unknown as IEmoji; assert.deepEqual(getEmoticonSearchStr(emoji), [':smile:', 'Smiling Face', 'smile', 'happy']); }); test('getEmoticonSearchStr for an IEmoji without a shortcodes array returns shortcode + label', () => { const emoji = { shortcode: 'smile', label: 'Smiling Face', } as unknown as IEmoji; assert.deepEqual(getEmoticonSearchStr(emoji), [':smile:', 'Smiling Face']); });