diff --git a/addons/mail/static/src/js/composers/mention_manager.js b/addons/mail/static/src/js/composers/mention_manager.js index 7acecadc062..907263328cc 100644 --- a/addons/mail/static/src/js/composers/mention_manager.js +++ b/addons/mail/static/src/js/composers/mention_manager.js @@ -378,9 +378,9 @@ var MentionManager = Widget.extend({ var textInput = this._composer.$input.val(); var id = $(ev.currentTarget).data('id'); var suggestions = _.flatten(this.get('mention_suggestions')); - var selectedSuggestion = _.find(suggestions, function (s) { + var selectedSuggestion = _.clone(_.find(suggestions, function (s) { return s.id === id; - }); + })); var substitution = selectedSuggestion.substitution; if (!substitution) { // no substitution string given, so use the mention name instead diff --git a/addons/mail/static/tests/discuss_tests.js b/addons/mail/static/tests/discuss_tests.js index 9913435363c..c676a805823 100644 --- a/addons/mail/static/tests/discuss_tests.js +++ b/addons/mail/static/tests/discuss_tests.js @@ -424,7 +424,7 @@ QUnit.test('@ mention in channel', function (assert) { }); QUnit.test('@ mention with special chars', function (assert) { - assert.expect(9); + assert.expect(10); var done = assert.async(); var fetchListenersDef = $.Deferred(); var receiveMessageDef = $.Deferred(); @@ -506,6 +506,12 @@ QUnit.test('@ mention with special chars', function (assert) { assert.strictEqual(discuss.$('.o_thread_message_content a').text(), "@\u0405pëciãlUser<&>\"`' \u30C4", "should have correct mention link in the message content"); + $input.val("@"); + $input.trigger('keyup'); + var $mention = discuss.$('.o_mention_proposition'); + assert.strictEqual($mention.find('.o_mention_name').text(), + '\u0405pëciãlUser<&>"`\' \u30C4', + "first partner mention should still display the correct partner name"); discuss.destroy(); done(); });