diff --git a/addons/mail/static/src/core/common/partner_compare.js b/addons/mail/static/src/core/common/partner_compare.js index 82e701c4a69..f494740a464 100644 --- a/addons/mail/static/src/core/common/partner_compare.js +++ b/addons/mail/static/src/core/common/partner_compare.js @@ -31,6 +31,9 @@ partnerCompareRegistry.add( (p1, p2, { thread }) => { if (thread) { const followerList = [...thread.followers]; + if (thread.selfFollower) { + followerList.push(thread.selfFollower); + } const isFollower1 = followerList.some((follower) => p1.eq(follower.partner)); const isFollower2 = followerList.some((follower) => p2.eq(follower.partner)); if (isFollower1 && !isFollower2) { diff --git a/addons/mail/static/tests/suggestion/suggestion_tests.js b/addons/mail/static/tests/suggestion/suggestion_tests.js index 119705743c9..238c89647f2 100644 --- a/addons/mail/static/tests/suggestion/suggestion_tests.js +++ b/addons/mail/static/tests/suggestion/suggestion_tests.js @@ -285,3 +285,33 @@ QUnit.test("Internal user should be displayed first", async () => { await contains(":nth-child(3 of .o-mail-Composer-suggestion) strong", { text: "Person B" }); await contains(":nth-child(4 of .o-mail-Composer-suggestion) strong", { text: "Person A" }); }); + +QUnit.test("Current user that is a follower should be considered as such", async () => { + const pyEnv = await startServer(); + const userId = pyEnv["res.users"].create({ share: true }); + pyEnv["res.partner"].create([ + { email: "a@test.com", name: "Person A" }, + { email: "b@test.com", name: "Person B", user_ids: [userId] }, + ]); + pyEnv["mail.followers"].create([ + { + is_active: true, + partner_id: pyEnv.currentPartnerId, + res_id: pyEnv.currentPartnerId, + res_model: "res.partner", + }, + ]); + const { openFormView } = await start(); + await openFormView("res.partner", pyEnv.currentPartnerId); + await click("button", { text: "Send message" }); + await insertText(".o-mail-Composer-input", "@"); + await contains(".o-mail-Composer-suggestion", { count: 3 }); + await contains(".o-mail-Composer-suggestion", { + text: "Mitchell Admin", + before: [".o-mail-Composer-suggestion", { text: "Person B(b@test.com)" }], + }); + await contains(".o-mail-Composer-suggestion", { + text: "Person B(b@test.com)", + before: [".o-mail-Composer-suggestion", { text: "Person A(a@test.com)" }], + }); +});