From 08278d582bd3eee652415bf476a69aec6142e733 Mon Sep 17 00:00:00 2001 From: tsm-odoo Date: Thu, 23 Mar 2023 09:23:22 +0000 Subject: [PATCH] [FIX] mail: crash when message has no author MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit fixes a crash that occured when a message has no author. The author avatar url was assuming an author would always be given while it is not the case. closes odoo/odoo#116306 Signed-off-by: Alexandre Kühn (aku) --- addons/mail/static/src/core_ui/message.js | 2 +- .../static/tests/message/message_tests.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/addons/mail/static/src/core_ui/message.js b/addons/mail/static/src/core_ui/message.js index 7b6b6cce0b2..51b10a83ec6 100644 --- a/addons/mail/static/src/core_ui/message.js +++ b/addons/mail/static/src/core_ui/message.js @@ -156,7 +156,7 @@ export class Message extends Component { get authorAvatarUrl() { if ( this.message.type === "email" && - !["partner", "guest"].includes(this.message.author.type) + !["partner", "guest"].includes(this.message.author?.type) ) { return url("/mail/static/src/img/email_icon.png"); } diff --git a/addons/mail/static/tests/message/message_tests.js b/addons/mail/static/tests/message/message_tests.js index 97964fc8e44..6ffb3524211 100644 --- a/addons/mail/static/tests/message/message_tests.js +++ b/addons/mail/static/tests/message/message_tests.js @@ -1400,3 +1400,22 @@ QUnit.test("Mark as unread", async (assert) => { assert.containsOnce($, ".o-mail-Thread-newMessage"); assert.containsOnce($, ".o-mail-DiscussCategoryItem .badge:contains(1)"); }); + +QUnit.test("Avatar of unknown author", async (assert) => { + const pyEnv = await startServer(); + pyEnv["mail.message"].create({ + body: "

Want to know features and benefits of using the new software.

", + email_from: "md@oilcompany.fr", + message_type: "email", + subject: "Need Details", + model: "res.partner", + res_id: pyEnv.currentPartnerId, + author_id: null, + }); + const { openFormView } = await start(); + await openFormView("res.partner", pyEnv.currentPartnerId); + assert.containsOnce( + $, + ".o-mail-Message-avatar[data-src*='mail/static/src/img/email_icon.png']" + ); +});