diff options
| author | Xavier Dubuc <xdu@odoo.com> | 2020-07-17 14:50:29 +0000 |
|---|---|---|
| committer | Xavier Dubuc <xdu@odoo.com> | 2020-09-17 13:17:45 +0000 |
| commit | 96e94287c6518f25dee1579259707a05481de294 (patch) | |
| tree | f33e3df40d1f058d0cc2453772afa336ca2a44a0 /addons/test_mail | |
| parent | d654c05f3e06898a5de025c1b830ba29c039f781 (diff) | |
[FIX] mail: fix "New messages" separator and channel_seen behaviour
- channel_seen is now called even for own message and only when needed
- channel_seen is now called with a message_id which transfer the
decision of what is seen to the client which makes more sense
task-2282235
task-2282248
closes odoo/odoo#57950
X-original-commit: 04edfa50ccea305050d017c4a1996e561bc7bd57
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Diffstat (limited to 'addons/test_mail')
| -rw-r--r-- | addons/test_mail/tests/test_mail_channel.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/addons/test_mail/tests/test_mail_channel.py b/addons/test_mail/tests/test_mail_channel.py index e08d45caa69..42fba8eeee4 100644 --- a/addons/test_mail/tests/test_mail_channel.py +++ b/addons/test_mail/tests/test_mail_channel.py @@ -257,6 +257,31 @@ class TestChannelFeatures(TestMailCommon): same_solo_channel_info = current_user.env['mail.channel'].channel_get(partners_to=current_partner.ids) self.assertEqual(same_solo_channel_info['id'], solo_channel_info['id']) + def test_channel_seen(self): + """ + In case of concurrent channel_seen RPC, ensure the oldest call has no effect. + """ + self.test_channel.write({'channel_type': 'chat'}) + self.test_channel.action_follow() + msg_1 = self._add_messages(self.test_channel, 'Body1', author=self.user_employee.partner_id, + channel_ids=[self.test_channel.id]) + msg_2 = self._add_messages(self.test_channel, 'Body2', author=self.user_employee.partner_id, + channel_ids=[self.test_channel.id]) + ChannelAsUser = self.test_channel.with_user(self.user_employee).browse(self.test_channel.id) + + self.test_channel.channel_seen(msg_2.id) + self.assertEqual( + ChannelAsUser.channel_info()[0]['seen_partners_info'][0]['seen_message_id'], + msg_2.id, + "Last message id should have been updated" + ) + + self.test_channel.channel_seen(msg_1.id) + self.assertEqual( + ChannelAsUser.channel_info()[0]['seen_partners_info'][0]['seen_message_id'], + msg_2.id, + "Last message id should stay the same after mark channel as seen with an older message" + ) @tagged('moderation') class TestChannelModeration(TestMailCommon): |
