import { emojiSearch, IMAGE_VERSION as v } from 'pretty-text/emoji'; import { emojiUnescape } from 'discourse/lib/text'; QUnit.module('lib:emoji'); QUnit.test("emojiUnescape", assert => { const testUnescape = (input, expected, description) => { assert.equal(emojiUnescape(input), expected, description); }; testUnescape("Not emoji :O) :frog) :smile)", "Not emoji :O) :frog) :smile)", "title without emoji"); testUnescape("Not emoji :frog :smile", "Not emoji :frog :smile", "end colon is not optional"); testUnescape("emoticons :)", `emoticons slight_smile`, "emoticons are still supported"); testUnescape("With emoji :O: :frog: :smile:", `With emoji O frog smile`, "title with emoji"); testUnescape("a:smile:a", "a:smile:a", "word characters not allowed next to emoji"); testUnescape("(:frog:) :)", `(frog) slight_smile`, "non-word characters allowed next to emoji"); testUnescape(":smile: hi", `smile hi`, "start of line"); testUnescape("hi :smile:", `hi smile`, "end of line"); testUnescape("hi :blonde_woman:t4:", `hi blonde_woman:t4`, "support for skin tones"); testUnescape("hi :blonde_woman:t4: :blonde_man:t6:", `hi blonde_woman:t4 blonde_man:t6`, "support for multiple skin tones"); testUnescape("hi :blonde_man:t6", "hi :blonde_man:t6", "end colon not optional for skin tones"); }); QUnit.test("Emoji search", assert => { // able to find an alias assert.equal(emojiSearch("+1").length, 1); // able to find middle of line search assert.equal(emojiSearch("check", {maxResults: 3}).length, 3); });