import {GET} from '../modules/fetch.ts'; import {matchEmoji, matchMention} from './match.ts'; vi.mock('../modules/fetch.ts', () => ({ GET: vi.fn(), })); const testMentions = [ {key: 'user1 User 1', value: 'user1', name: 'user1', fullname: 'User 1', avatar: 'https://avatar1.com'}, {key: 'user2 User 2', value: 'user2', name: 'user2', fullname: 'User 2', avatar: 'https://avatar2.com'}, {key: 'org3 User 3', value: 'org3', name: 'org3', fullname: 'User 3', avatar: 'https://avatar3.com'}, {key: 'user4 User 4', value: 'user4', name: 'user4', fullname: 'User 4', avatar: 'https://avatar4.com'}, {key: 'user5 User 5', value: 'user5', name: 'user5', fullname: 'User 5', avatar: 'https://avatar5.com'}, {key: 'org6 User 6', value: 'org6', name: 'org6', fullname: 'User 6', avatar: 'https://avatar6.com'}, {key: 'org7 User 7', value: 'org7', name: 'org7', fullname: 'User 7', avatar: 'https://avatar7.com'}, ]; test('matchEmoji', () => { expect(matchEmoji('')).toMatchInlineSnapshot(` [ "+1", "-1", "100", "1234", "1st_place_medal", "2nd_place_medal", ] `); expect(matchEmoji('hea')).toMatchInlineSnapshot(` [ "head_shaking_horizontally", "head_shaking_vertically", "headphones", "headstone", "health_worker", "hear_no_evil", ] `); expect(matchEmoji('hear')).toMatchInlineSnapshot(` [ "hear_no_evil", "heard_mcdonald_islands", "heart", "heart_decoration", "heart_eyes", "heart_eyes_cat", ] `); expect(matchEmoji('poo')).toMatchInlineSnapshot(` [ "poodle", "hankey", "spoon", "bowl_with_spoon", ] `); expect(matchEmoji('1st_')).toMatchInlineSnapshot(` [ "1st_place_medal", ] `); expect(matchEmoji('jellyfis')).toMatchInlineSnapshot(` [ "jellyfish", ] `); }); test('matchMention', async () => { vi.mocked(GET).mockResolvedValue({ok: true, json: () => Promise.resolve(testMentions)} as Response); expect(await matchMention('/any-mentions', '')).toEqual(testMentions.slice(0, 6)); expect(await matchMention('/any-mentions', 'user4')).toEqual([testMentions[3]]); });