DEV: Add test (#8961)

DEV: Add test (#8961)

Follow-up to 67c9940d72faafa2fec7e327018249ef5a005f15.

diff --git a/test/javascripts/lib/link-mentions-test.js.es6 b/test/javascripts/lib/link-mentions-test.js.es6
new file mode 100644
index 0000000000..ae5a83c5cf
--- /dev/null
+++ b/test/javascripts/lib/link-mentions-test.js.es6
@@ -0,0 +1,61 @@
+import {
+  fetchUnseenMentions,
+  linkSeenMentions
+} from "discourse/lib/link-mentions";
+import { Promise } from "rsvp";
+
+QUnit.module("lib:link-mentions");
+
+QUnit.test("linkSeenMentions replaces users and groups", async assert => {
+  /* global server */
+  server.get("/u/is_local_username", () => [
+    200,
+    { "Content-Type": "application/json" },
+    {
+      valid: ["valid_user"],
+      valid_groups: ["valid_group"],
+      mentionable_groups: [
+        {
+          name: "mentionable_group",
+          user_count: 1
+        }
+      ],
+      cannot_see: [],
+      max_users_notified_per_group_mention: 100
+    }
+  ]);
+
+  await fetchUnseenMentions([
+    "valid_user",
+    "mentionable_group",
+    "valid_group",
+    "invalid"
+  ]);
+
+  let $root = $(`
+    <div>
+        <span class="mention">@invalid</span>
+        <span class="mention">@valid_user</span>
+        <span class="mention">@valid_group</span>
+        <span class="mention">@mentionable_group</span>
+    </div>
+  `);
+
+  await linkSeenMentions($root);
+
+  // Ember.Test.registerWaiter is not available here, so we are implementing
+  // our own
+  await new Promise(resolve => {
+    const interval = setInterval(() => {
+      if ($("a", $root).length > 0) {
+        clearInterval(interval);
+        resolve();
+      }
+    }, 500);
+  });
+
+  assert.equal($("a", $root)[0].text, "@valid_user");
+  assert.equal($("a", $root)[1].text, "@mentionable_group");
+  assert.equal($("span.mention", $root)[0].innerHTML, "@invalid");
+  assert.equal($("span.mention", $root)[1].innerHTML, "@valid_group");
+});

GitHub sha: 09edde8e

This commit appears in #8961 which was approved by @eviltrout. It was merged by @udan11.