import { isCustomEmoji, isUnicodeEmoji, stringHasUnicodeFlags } from './utils'; describe('isUnicodeEmoji', () => { test.concurrent.for([ ['😊', true], ['πŸ‡ΏπŸ‡Ό', true], ['πŸ΄β€β˜ οΈ', true], ['πŸ³οΈβ€πŸŒˆ', true], ['foo', false], [':smile:', false], ['😊foo', false], ] as const)('isUnicodeEmoji("%s") is %o', ([input, expected], { expect }) => { expect(isUnicodeEmoji(input)).toBe(expected); }); }); describe('isCustomEmoji', () => { test.concurrent.for([ [':smile:', true], [':smile_123:', true], [':SMILE:', true], ['😊', false], ['foo', false], [':smile', false], ['smile:', false], ] as const)('isCustomEmoji("%s") is %o', ([input, expected], { expect }) => { expect(isCustomEmoji(input)).toBe(expected); }); }); describe('stringHasUnicodeFlags', () => { test.concurrent.for([ ['EU πŸ‡ͺπŸ‡Ί', true], ['Germany πŸ‡©πŸ‡ͺ', true], ['Canada πŸ‡¨πŸ‡¦', true], ['SΓ£o TomΓ© & PrΓ­ncipe πŸ‡ΈπŸ‡Ή', true], ['Scotland 🏴󠁧󠁒󠁳󠁣󠁴󠁿', true], ['black flag 🏴', false], ['arrr πŸ΄β€β˜ οΈ', false], ['rainbow flag πŸ³οΈβ€πŸŒˆ', false], ['non-flag πŸ”₯', false], ['only text', false], ] as const)( 'stringHasFlags has flag in "%s": %o', ([text, expected], { expect }) => { expect(stringHasUnicodeFlags(text)).toBe(expected); }, ); });