diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js index 2458bbcd6b0..5c8af7a4ee2 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js @@ -1,6 +1,7 @@ import { acceptance, exists, + query, queryAll, } from "discourse/tests/helpers/qunit-helpers"; import { click, fillIn, visit } from "@ember/test-helpers"; @@ -28,6 +29,15 @@ acceptance("EmojiPicker", function (needs) { assert.notOk(exists(".emoji-picker.opened"), "it closes the picker"); }); + test("filters emoji", async function (assert) { + await visit("/t/internationalization-localization/280"); + await click("#topic-footer-buttons .btn.create"); + await click("button.emoji.btn"); + await fillIn(".emoji-picker input.filter", "guitar"); + + assert.strictEqual(query(`.emoji-picker .results img`).title, "guitar"); + }); + test("emoji picker triggers event when picking emoji", async function (assert) { await visit("/t/internationalization-localization/280"); await click("#topic-footer-buttons .btn.create"); diff --git a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js index e50b963a131..77ce2d61d1d 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js @@ -150,4 +150,12 @@ discourseModule("Unit | Utility | emoji", function () { "green_apple", ]); }); + + test("search does not return duplicated results", function (assert) { + const matches = emojiSearch("bow").filter( + (emoji) => emoji === "bowing_man" + ); + + assert.deepEqual(matches, ["bowing_man"]); + }); }); diff --git a/app/assets/javascripts/pretty-text/addon/emoji.js b/app/assets/javascripts/pretty-text/addon/emoji.js index 3ff60de061d..9d79a6ce61b 100644 --- a/app/assets/javascripts/pretty-text/addon/emoji.js +++ b/app/assets/javascripts/pretty-text/addon/emoji.js @@ -223,7 +223,9 @@ export function emojiSearch(term, options) { } if (searchAliases[term]) { - results.push.apply(results, searchAliases[term]); + for (const emoji of searchAliases[term]) { + addResult(emoji); + } } for (let i = 0; i < toSearch.length; i++) {