DEV: Add test (#8961)

Follow-up to 67c9940d72.
This commit is contained in:
Dan Ungureanu 2020-02-14 10:19:58 +02:00 committed by GitHub
parent 9aeb9f0ca1
commit 09edde8ef7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 61 additions and 0 deletions

View File

@ -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");
});