diff options
| author | Xavier Dubuc <xdu@odoo.com> | 2020-09-03 16:24:19 +0000 |
|---|---|---|
| committer | Sébastien Theys <seb@odoo.com> | 2020-09-04 14:59:01 +0000 |
| commit | 8d3413ff647de8d98c6858062dd07dde4160af95 (patch) | |
| tree | 3dc134e83c874d5c7f7bf739f13a88ab986ddb1b /addons/snailmail/static/src/components/message/message_tests.js | |
| parent | a5ab687be4e7890262ce9429e18dd011021513d5 (diff) | |
[FIX] mail, sms, snailmail: prevent message_fetch for hidden threads
Automatically load messages from a thread cache only if the thread cache is used
in at least one thread view.
Ensure thread viewer don't keep thread view records alive when they are not
displayed.
This change is particularly important for performance, to avoid spamming RPC at
init if many threads are opened in chat windows.
task-2310623
closes odoo/odoo#57061
X-original-commit: dd6981c7812134e0588f80a157eaba45512cd68e
Related: odoo/enterprise#12936
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Diffstat (limited to 'addons/snailmail/static/src/components/message/message_tests.js')
| -rw-r--r-- | addons/snailmail/static/src/components/message/message_tests.js | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/addons/snailmail/static/src/components/message/message_tests.js b/addons/snailmail/static/src/components/message/message_tests.js index fca1ba5237c..f4dde33e651 100644 --- a/addons/snailmail/static/src/components/message/message_tests.js +++ b/addons/snailmail/static/src/components/message/message_tests.js @@ -46,7 +46,8 @@ QUnit.test('Sent', async function (assert) { assert.expect(8); await this.start(); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -60,10 +61,10 @@ QUnit.test('Sent', async function (assert) { notification_status: 'sent', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -116,7 +117,8 @@ QUnit.test('Canceled', async function (assert) { assert.expect(8); await this.start(); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -130,10 +132,10 @@ QUnit.test('Canceled', async function (assert) { notification_status: 'canceled', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -186,7 +188,8 @@ QUnit.test('Pending', async function (assert) { assert.expect(8); await this.start(); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -200,10 +203,10 @@ QUnit.test('Pending', async function (assert) { notification_status: 'ready', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -263,7 +266,8 @@ QUnit.test('No Price Available', async function (assert) { return this._super(...arguments); }, }); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -278,10 +282,10 @@ QUnit.test('No Price Available', async function (assert) { notification_status: 'exception', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -349,7 +353,8 @@ QUnit.test('Credit Error', async function (assert) { return this._super(...arguments); }, }); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -364,10 +369,10 @@ QUnit.test('Credit Error', async function (assert) { notification_status: 'exception', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -440,7 +445,8 @@ QUnit.test('Trial Error', async function (assert) { return this._super(...arguments); }, }); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -455,10 +461,10 @@ QUnit.test('Trial Error', async function (assert) { notification_status: 'exception', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -539,7 +545,8 @@ QUnit.test('Format Error', async function (assert) { }); await this.start({ env: { bus } }); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['create', { id: 11, model: 'mail.channel', @@ -554,10 +561,10 @@ QUnit.test('Format Error', async function (assert) { notification_status: 'exception', notification_type: 'snail', }]], - originThread: [['link', threadView.thread]], + originThread: [['link', threadViewer.thread]], }); await this.createMessageComponent(message, { - threadViewLocalId: threadView.localId + threadViewLocalId: threadViewer.threadView.localId }); assert.containsOnce( @@ -627,11 +634,14 @@ QUnit.test('Missing Required Fields', async function (assert) { await this.start({ env: { bus }, }); - const threadView = this.env.models['mail.thread_view'].create({ + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, thread: [['insert', { id: 20, model: 'res.partner' }]], }); const message = this.env.models['mail.message'].find(message => message.id === 10); - await this.createMessageComponent(message, { threadViewLocalId: threadView.localId }); + await this.createMessageComponent(message, { + threadViewLocalId: threadViewer.threadView.localId, + }); assert.containsOnce( document.body, |
