mirror of
https://github.com/discourse/discourse.git
synced 2025-02-16 23:42:44 +08:00
parent
9aeb9f0ca1
commit
09edde8ef7
61
test/javascripts/lib/link-mentions-test.js.es6
Normal file
61
test/javascripts/lib/link-mentions-test.js.es6
Normal 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");
|
||||
});
|
Loading…
Reference in New Issue
Block a user