mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 09:43:53 +08:00
d51107e2c9
Now if a group is visible but unmentionable, users can search for it when composing by typing with `@`, but it will be rendered without the grey background color. It will also no longer pop up a JIT warning saying "You are about to mention X people" because the group will not be mentioned.
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
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, "@valid_group");
|
|
assert.equal($("a.notify", $root).text(), "@mentionable_group");
|
|
assert.equal($("span.mention", $root)[0].innerHTML, "@invalid");
|
|
});
|