mirror of
https://github.com/discourse/discourse.git
synced 2025-06-15 20:22:03 +08:00
DEV: Add test (#8961)
Follow-up to 67c9940d72faafa2fec7e327018249ef5a005f15.
This commit is contained in:
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");
|
||||||
|
});
|
Reference in New Issue
Block a user