[FIX] mail, im_livechat, snailmail: use findFromIdentifyingData
find is O(n) and findFromIdentifyingData is O(1) task-2440693 closes odoo/odoo#64745 X-original-commit: e995f03a9a55280b1e9173223cdfa619ae164cc3 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
@@ -57,10 +57,10 @@ QUnit.test('livechat in the sidebar: basic rendering', async function (assert) {
|
||||
);
|
||||
const livechat = groupLivechat.querySelector(`
|
||||
.o_DiscussSidebarItem[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 11 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 11,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
|
||||
@@ -50,10 +50,10 @@ QUnit.test('livechat: public website visitor is typing', async function (assert)
|
||||
members: [this.data.currentPartnerId, this.data.publicPartnerId],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadIcon(thread);
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
|
||||
+4
-4
@@ -50,10 +50,10 @@ QUnit.test('receive visitor typing status "is typing"', async function (assert)
|
||||
members: [this.data.currentPartnerId, this.data.publicPartnerId],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
|
||||
@@ -65,7 +65,7 @@ QUnit.test('simplest layout', async function (assert) {
|
||||
const attachmentEl = document.querySelector('.o_Attachment');
|
||||
assert.strictEqual(
|
||||
attachmentEl.dataset.attachmentLocalId,
|
||||
this.env.models['mail.attachment'].find(attachment => attachment.id === 750).localId,
|
||||
this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }).localId,
|
||||
"attachment component should be linked to attachment store model"
|
||||
);
|
||||
assert.strictEqual(
|
||||
|
||||
@@ -228,9 +228,7 @@ QUnit.test('view attachments', async function (assert) {
|
||||
id: 100,
|
||||
model: 'res.partner',
|
||||
});
|
||||
const firstAttachment = this.env.models['mail.attachment'].find(
|
||||
attachment => attachment.id === 143
|
||||
);
|
||||
const firstAttachment = this.env.models['mail.attachment'].findFromIdentifyingData({ id: 143 });
|
||||
await this.createAttachmentBoxComponent(thread);
|
||||
|
||||
await afterNextRender(() =>
|
||||
|
||||
+76
-74
@@ -445,10 +445,10 @@ QUnit.test('chat window: basic rendering', async function (assert) {
|
||||
const chatWindow = document.querySelector(`.o_ChatWindow`);
|
||||
assert.strictEqual(
|
||||
chatWindow.dataset.threadLocalId,
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId,
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId,
|
||||
"should have open a chat window of channel"
|
||||
);
|
||||
assert.strictEqual(
|
||||
@@ -936,10 +936,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -951,10 +951,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -963,10 +963,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).classList.contains('o-focused'),
|
||||
"chat window of chat should have focus"
|
||||
@@ -977,10 +977,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -992,10 +992,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1004,10 +1004,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1016,10 +1016,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).classList.contains('o-focused'),
|
||||
"chat window of channel should have focus"
|
||||
@@ -1027,10 +1027,10 @@ QUnit.test('open 2 different chat windows: enough screen width [REQUIRE FOCUS]',
|
||||
assert.notOk(
|
||||
document.querySelector(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).classList.contains('o-focused'),
|
||||
"chat window of chat should no longer have focus"
|
||||
@@ -1285,10 +1285,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 1 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 1,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -1315,10 +1315,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 2 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 2,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -1345,10 +1345,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 3 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 3,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -1370,10 +1370,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 1 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 1,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1382,10 +1382,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 3 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 3,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1394,10 +1394,10 @@ QUnit.test('open 3 different chat windows: not enough screen width', async funct
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 3 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 3,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).classList.contains('o-focused'),
|
||||
"chat window of channel 3 should have focus"
|
||||
@@ -1422,10 +1422,10 @@ QUnit.test('chat window: switch on TAB', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 1 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 1,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]`
|
||||
).click()
|
||||
);
|
||||
@@ -1463,10 +1463,10 @@ QUnit.test('chat window: switch on TAB', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_NotificationList_preview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 2 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 2,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]`
|
||||
).click()
|
||||
);
|
||||
@@ -1958,9 +1958,10 @@ QUnit.test('chat window does not fetch messages if hidden', async function (asse
|
||||
assert.containsNone(
|
||||
document.body,
|
||||
`.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(t =>
|
||||
t.model === 'mail.channel' && t.id === 12
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]`,
|
||||
"chat window for Channel #12 should be hidden"
|
||||
);
|
||||
@@ -1995,9 +1996,10 @@ QUnit.test('chat window does not fetch messages if hidden', async function (asse
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_ChatWindow[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(t =>
|
||||
t.model === 'mail.channel' && t.id === 12
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]`,
|
||||
"chat window for Channel #12 should now be visible"
|
||||
);
|
||||
|
||||
@@ -89,10 +89,10 @@ QUnit.test('base rendering when chatter has no attachment', async function (asse
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector(`.o_Chatter_thread`).dataset.threadLocalId,
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'res.partner'
|
||||
).localId,
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'res.partner',
|
||||
}).localId,
|
||||
"thread should have the right thread local id"
|
||||
);
|
||||
assert.strictEqual(
|
||||
|
||||
@@ -206,10 +206,10 @@ QUnit.test('mailing channel composer: basic rendering', async function (assert)
|
||||
// value and a random unique id that will be referenced in the test
|
||||
this.data['mail.channel'].records.push({ id: 20, mass_mailing: true });
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer);
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
@@ -1325,10 +1325,10 @@ QUnit.test('send message when enter is pressed while holding ctrl key (this shor
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, {
|
||||
textInputSendShortcuts: ['ctrl-enter'],
|
||||
});
|
||||
@@ -1380,10 +1380,10 @@ QUnit.test('send message when enter is pressed while holding meta key (this shor
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, {
|
||||
textInputSendShortcuts: ['meta-enter'],
|
||||
});
|
||||
@@ -1434,10 +1434,10 @@ QUnit.test('composer text input cleared on message post', async function (assert
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer);
|
||||
// Type message
|
||||
await afterNextRender(() => {
|
||||
@@ -1494,10 +1494,10 @@ QUnit.test('composer inputs cleared on message post in composer of a mailing cha
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer);
|
||||
// Type message
|
||||
await afterNextRender(() => {
|
||||
@@ -1544,10 +1544,10 @@ QUnit.test('composer with thread typing notification status', async function (as
|
||||
// with a random unique id that will be referenced in the test
|
||||
this.data['mail.channel'].records.push({ id: 20 });
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, { hasThreadTyping: true });
|
||||
|
||||
assert.containsOnce(
|
||||
@@ -1576,10 +1576,10 @@ QUnit.test('current partner notify is typing to other thread members', async fun
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, { hasThreadTyping: true });
|
||||
|
||||
document.querySelector(`.o_ComposerTextInput_textarea`).focus();
|
||||
@@ -1608,10 +1608,10 @@ QUnit.test('current partner is typing should not translate on textual typing sta
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, { hasThreadTyping: true });
|
||||
|
||||
document.querySelector(`.o_ComposerTextInput_textarea`).focus();
|
||||
@@ -1647,10 +1647,10 @@ QUnit.test('current partner notify no longer is typing to thread members after 5
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, { hasThreadTyping: true });
|
||||
|
||||
document.querySelector(`.o_ComposerTextInput_textarea`).focus();
|
||||
@@ -1685,10 +1685,10 @@ QUnit.test('current partner notify is typing again to other members every 50s of
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, { hasThreadTyping: true });
|
||||
|
||||
document.querySelector(`.o_ComposerTextInput_textarea`).focus();
|
||||
@@ -2042,10 +2042,10 @@ QUnit.test('send message only once when button send is clicked twice quickly', a
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer);
|
||||
// Type message
|
||||
await afterNextRender(() => {
|
||||
@@ -2075,10 +2075,10 @@ QUnit.test('send message only once when enter is pressed twice quickly', async f
|
||||
return this._super(...arguments);
|
||||
},
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createComposerComponent(thread.composer, {
|
||||
textInputSendShortcuts: ['enter'],
|
||||
});
|
||||
|
||||
@@ -217,10 +217,10 @@ QUnit.test('as moderator, moderated channel with pending moderation message', as
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -355,14 +355,14 @@ QUnit.test('as moderator, accept pending moderation message', async function (as
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`),
|
||||
"should display the message to moderate"
|
||||
);
|
||||
const acceptButton = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_moderationAction.o-accept
|
||||
`);
|
||||
@@ -379,10 +379,10 @@ QUnit.test('as moderator, accept pending moderation message', async function (as
|
||||
// 2. go to channel 'general'
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -393,7 +393,7 @@ QUnit.test('as moderator, accept pending moderation message', async function (as
|
||||
await afterNextRender(() => channel.click());
|
||||
const message = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -474,7 +474,7 @@ QUnit.test('as moderator, reject pending moderation message (reject with explana
|
||||
await afterNextRender(() => moderationBox.click());
|
||||
const pendingMessage = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -553,10 +553,10 @@ QUnit.test('as moderator, reject pending moderation message (reject with explana
|
||||
// 2. go to channel 'general'
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -616,7 +616,7 @@ QUnit.test('as moderator, discard pending moderation message (reject without exp
|
||||
await afterNextRender(() => moderationBox.click());
|
||||
const pendingMessage = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -670,10 +670,10 @@ QUnit.test('as moderator, discard pending moderation message (reject without exp
|
||||
// 2. go to channel 'general'
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -700,10 +700,10 @@ QUnit.test('as author, send message in moderated channel', async function (asser
|
||||
await this.start();
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -757,10 +757,10 @@ QUnit.test('as author, sent message accepted in moderated channel', async functi
|
||||
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -771,7 +771,7 @@ QUnit.test('as author, sent message accepted in moderated channel', async functi
|
||||
await afterNextRender(() => channel.click());
|
||||
const messagePending = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_moderationPending
|
||||
`);
|
||||
@@ -798,7 +798,7 @@ QUnit.test('as author, sent message accepted in moderated channel', async functi
|
||||
// check message is accepted
|
||||
const message = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -831,10 +831,10 @@ QUnit.test('as author, sent message rejected in moderated channel', async functi
|
||||
|
||||
const channel = document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.ok(
|
||||
@@ -845,7 +845,7 @@ QUnit.test('as author, sent message rejected in moderated channel', async functi
|
||||
await afterNextRender(() => channel.click());
|
||||
const messagePending = document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_moderationPending
|
||||
`);
|
||||
@@ -894,7 +894,7 @@ QUnit.test('as moderator, pending moderation message accessibility', async funct
|
||||
});
|
||||
await this.start();
|
||||
|
||||
const thread = this.env.models['mail.thread'].find(thread => thread.id === 20 && thread.model === 'mail.channel');
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({ id: 20, model: 'mail.channel' });
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
@@ -909,7 +909,7 @@ QUnit.test('as moderator, pending moderation message accessibility', async funct
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${thread.localId}"]
|
||||
`).click()
|
||||
);
|
||||
const message = this.env.models['mail.message'].find(message => message.id === 100);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id: 100 });
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_Message[data-message-local-id="${message.localId}"]`,
|
||||
@@ -946,14 +946,14 @@ QUnit.test('as author, pending moderation message should appear in origin thread
|
||||
res_id: 20, // id of the channel
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread => thread.id === 20 && thread.model === 'mail.channel');
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({ id: 20, model: 'mail.channel' });
|
||||
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${thread.localId}"]
|
||||
`).click()
|
||||
);
|
||||
const message = this.env.models['mail.message'].find(message => message.id === 100);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id: 100 });
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_Message[data-message-local-id="${message.localId}"]`,
|
||||
@@ -971,7 +971,7 @@ QUnit.test('as moderator, new pending moderation message posted by someone else'
|
||||
moderation: true, // channel must be moderated to test the feature
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread => thread.id === 20 && thread.model === 'mail.channel');
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({ id: 20, model: 'mail.channel' });
|
||||
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
@@ -1001,7 +1001,7 @@ QUnit.test('as moderator, new pending moderation message posted by someone else'
|
||||
]];
|
||||
this.widget.call('bus_service', 'trigger', 'notification', notifications);
|
||||
});
|
||||
const message = this.env.models['mail.message'].find(message => message.id === 1);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id: 1 });
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_Message[data-message-local-id="${message.localId}"]`,
|
||||
|
||||
@@ -45,9 +45,10 @@ QUnit.test('sidebar: pinned channel 1: init with one pinned channel', async func
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_DiscussSidebarItem[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 && thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]`,
|
||||
"should have the only channel of which user is member in discuss sidebar"
|
||||
);
|
||||
@@ -61,9 +62,10 @@ QUnit.test('sidebar: pinned channel 2: open pinned channel', async function (ass
|
||||
this.data['mail.channel'].records.push({ id: 20 });
|
||||
await this.start();
|
||||
|
||||
const threadGeneral = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 && thread.model === 'mail.channel'
|
||||
);
|
||||
const threadGeneral = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`.o_DiscussSidebarItem[data-thread-local-id="${
|
||||
threadGeneral.localId
|
||||
@@ -104,9 +106,10 @@ QUnit.test('sidebar: pinned channel 3: open pinned channel and unpin it', async
|
||||
},
|
||||
});
|
||||
|
||||
const threadGeneral = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 && thread.model === 'mail.channel'
|
||||
);
|
||||
const threadGeneral = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`.o_DiscussSidebarItem[data-thread-local-id="${
|
||||
threadGeneral.localId
|
||||
@@ -142,9 +145,10 @@ QUnit.test('sidebar: unpin channel from bus', async function (assert) {
|
||||
// with a random unique id that will be referenced in the test
|
||||
this.data['mail.channel'].records.push({ id: 20 });
|
||||
await this.start();
|
||||
const threadGeneral = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 && thread.model === 'mail.channel'
|
||||
);
|
||||
const threadGeneral = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
@@ -211,9 +215,10 @@ QUnit.test('[technical] sidebar: channel group_based_subscription: mandatorily p
|
||||
is_pinned: false, // expected value for this test
|
||||
});
|
||||
await this.start();
|
||||
const threadGeneral = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 && thread.model === 'mail.channel'
|
||||
);
|
||||
const threadGeneral = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_DiscussSidebarItem[data-thread-local-id="${threadGeneral.localId}"]`,
|
||||
|
||||
@@ -438,10 +438,10 @@ QUnit.test('sidebar: basic channel rendering', async function (assert) {
|
||||
`);
|
||||
assert.strictEqual(
|
||||
channel.dataset.threadLocalId,
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId,
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId,
|
||||
"should have channel with Id 20"
|
||||
);
|
||||
assert.strictEqual(
|
||||
@@ -589,10 +589,10 @@ QUnit.test('sidebar: public/private channel rendering', async function (assert)
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -602,10 +602,10 @@ QUnit.test('sidebar: public/private channel rendering', async function (assert)
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 101 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 101,
|
||||
model: 'mail.channel'
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -614,19 +614,19 @@ QUnit.test('sidebar: public/private channel rendering', async function (assert)
|
||||
const channel1 = document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel'
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
const channel2 = document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 101 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 101,
|
||||
model: 'mail.channel'
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.strictEqual(
|
||||
@@ -663,10 +663,10 @@ QUnit.test('sidebar: basic chat rendering', async function (assert) {
|
||||
const chat = document.querySelector(`.o_DiscussSidebar_groupChat .o_DiscussSidebar_item`);
|
||||
assert.strictEqual(
|
||||
chat.dataset.threadLocalId,
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId,
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel'
|
||||
}).localId,
|
||||
"should have chat with Id 10"
|
||||
);
|
||||
assert.strictEqual(
|
||||
@@ -796,10 +796,10 @@ QUnit.test('sidebar: chat im_status rendering', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 11 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 11,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -809,10 +809,10 @@ QUnit.test('sidebar: chat im_status rendering', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -822,10 +822,10 @@ QUnit.test('sidebar: chat im_status rendering', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 13 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 13,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -834,28 +834,28 @@ QUnit.test('sidebar: chat im_status rendering', async function (assert) {
|
||||
const chat1 = document.querySelector(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 11 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 11,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
const chat2 = document.querySelector(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
const chat3 = document.querySelector(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 13 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 13,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`);
|
||||
assert.strictEqual(
|
||||
@@ -998,10 +998,10 @@ QUnit.test('default thread rendering', async function (assert) {
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1088,20 +1088,20 @@ QUnit.test('default thread rendering', async function (assert) {
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
assert.ok(
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).classList.contains('o-active'),
|
||||
"channel 20 should be active thread"
|
||||
@@ -1246,7 +1246,7 @@ QUnit.test('load single message from channel initially', async function (assert)
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -1305,7 +1305,7 @@ QUnit.test('basic rendering of message', async function (assert) {
|
||||
.o_Discuss_thread
|
||||
.o_ThreadView_messageList
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.strictEqual(
|
||||
@@ -1426,14 +1426,14 @@ QUnit.test('basic rendering of squashed message', async function (assert) {
|
||||
.o_Discuss_thread
|
||||
.o_ThreadView_messageList
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
const message2 = document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_ThreadView_messageList
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.notOk(
|
||||
@@ -1532,14 +1532,14 @@ QUnit.test('inbox messages are never squashed', async function (assert) {
|
||||
.o_Discuss_thread
|
||||
.o_ThreadView_messageList
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
const message2 = document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_ThreadView_messageList
|
||||
.o_MessageList_message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.notOk(
|
||||
@@ -2020,10 +2020,10 @@ QUnit.test('restore thread scroll position', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click();
|
||||
},
|
||||
@@ -2052,10 +2052,10 @@ QUnit.test('restore thread scroll position', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 11 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 11,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click();
|
||||
},
|
||||
@@ -2081,10 +2081,10 @@ QUnit.test('restore thread scroll position', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click();
|
||||
},
|
||||
@@ -2145,7 +2145,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -2155,7 +2155,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -2165,7 +2165,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).length,
|
||||
@@ -2176,7 +2176,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).length,
|
||||
@@ -2187,7 +2187,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).textContent.trim(),
|
||||
@@ -2198,7 +2198,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
.o_Message_originThreadLink
|
||||
`).length,
|
||||
@@ -2211,7 +2211,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
.o_Message_originThreadLink
|
||||
`).click()
|
||||
@@ -2220,10 +2220,10 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_activeIndicator
|
||||
`).classList.contains('o-item-active'),
|
||||
@@ -2238,7 +2238,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -2248,7 +2248,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -2258,7 +2258,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).length,
|
||||
@@ -2269,7 +2269,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).length,
|
||||
@@ -2280,7 +2280,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_originThread
|
||||
`).textContent.trim(),
|
||||
@@ -2291,7 +2291,7 @@ QUnit.test('message origin redirect to channel', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
.o_Message_originThreadLink
|
||||
`).length,
|
||||
@@ -2342,10 +2342,10 @@ QUnit.test('redirect to author (open chat)', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 1 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 1,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_activeIndicator
|
||||
`).classList.contains('o-item-active'),
|
||||
@@ -2355,10 +2355,10 @@ QUnit.test('redirect to author (open chat)', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_activeIndicator
|
||||
`).classList.contains('o-item-active'),
|
||||
@@ -2372,7 +2372,7 @@ QUnit.test('redirect to author (open chat)', async function (assert) {
|
||||
const msg1 = document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`);
|
||||
assert.strictEqual(
|
||||
@@ -2392,10 +2392,10 @@ QUnit.test('redirect to author (open chat)', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 1 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 1,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_activeIndicator
|
||||
`).classList.contains('o-item-active'),
|
||||
@@ -2405,10 +2405,10 @@ QUnit.test('redirect to author (open chat)', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChat
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_activeIndicator
|
||||
`).classList.contains('o-item-active'),
|
||||
@@ -2463,10 +2463,10 @@ QUnit.test('sidebar quick search', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_groupChannel .o_DiscussSidebar_item
|
||||
`).dataset.threadLocalId,
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 12 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId,
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 12,
|
||||
model: 'mail.channel',
|
||||
}).localId,
|
||||
"should have filtered to a single channel item with Id 12"
|
||||
);
|
||||
|
||||
@@ -2533,10 +2533,10 @@ QUnit.test('basic control panel rendering', async function (assert) {
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click()
|
||||
);
|
||||
@@ -2606,10 +2606,10 @@ QUnit.test('inbox: mark all messages as read', async function (assert) {
|
||||
assert.strictEqual(
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_counter
|
||||
`).textContent,
|
||||
@@ -2641,10 +2641,10 @@ QUnit.test('inbox: mark all messages as read', async function (assert) {
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
.o_DiscussSidebarItem_counter
|
||||
`).length,
|
||||
@@ -2945,7 +2945,7 @@ QUnit.test('composer state: attachments save and restore', async function (asser
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector(`.o_Composer .o_Attachment`).dataset.attachmentLocalId,
|
||||
this.env.models['mail.attachment'].find(attachment => attachment.id === 1).localId,
|
||||
this.env.models['mail.attachment'].findFromIdentifyingData({ id: 1 }).localId,
|
||||
"should have correct 1st attachment in the composer"
|
||||
);
|
||||
|
||||
@@ -2959,17 +2959,17 @@ QUnit.test('composer state: attachments save and restore', async function (asser
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`.o_Composer .o_Attachment`)[0].dataset.attachmentLocalId,
|
||||
this.env.models['mail.attachment'].find(attachment => attachment.id === 2).localId,
|
||||
this.env.models['mail.attachment'].findFromIdentifyingData({ id: 2 }).localId,
|
||||
"should have attachment with id 2 as 1st attachment"
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`.o_Composer .o_Attachment`)[1].dataset.attachmentLocalId,
|
||||
this.env.models['mail.attachment'].find(attachment => attachment.id === 3).localId,
|
||||
this.env.models['mail.attachment'].findFromIdentifyingData({ id: 3 }).localId,
|
||||
"should have attachment with id 3 as 2nd attachment"
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`.o_Composer .o_Attachment`)[2].dataset.attachmentLocalId,
|
||||
this.env.models['mail.attachment'].find(attachment => attachment.id === 4).localId,
|
||||
this.env.models['mail.attachment'].findFromIdentifyingData({ id: 4 }).localId,
|
||||
"should have attachment with id 4 as 3rd attachment"
|
||||
);
|
||||
});
|
||||
@@ -3060,7 +3060,7 @@ QUnit.test('post a simple message', async function (assert) {
|
||||
const message = document.querySelector(`.o_Message`);
|
||||
assert.strictEqual(
|
||||
message.dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === postedMessageId).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: postedMessageId }).localId,
|
||||
"new message in thread should be linked to newly created message from message post"
|
||||
);
|
||||
assert.strictEqual(
|
||||
@@ -3450,7 +3450,7 @@ QUnit.test('receive new needaction messages', async function (assert) {
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector(`.o_Discuss_thread .o_Message`).dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId,
|
||||
"should display newly received needaction message"
|
||||
);
|
||||
|
||||
@@ -3485,7 +3485,7 @@ QUnit.test('receive new needaction messages', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`),
|
||||
"should still display 1st needaction message"
|
||||
@@ -3494,7 +3494,7 @@ QUnit.test('receive new needaction messages', async function (assert) {
|
||||
document.querySelector(`
|
||||
.o_Discuss_thread
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 101).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 101 }).localId
|
||||
}"]
|
||||
`),
|
||||
"should display 2nd needaction message"
|
||||
@@ -3557,7 +3557,7 @@ QUnit.test('reply to message from inbox (message linked to document)', async fun
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector('.o_Message').dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId,
|
||||
"should display message with ID 100"
|
||||
);
|
||||
assert.strictEqual(
|
||||
@@ -3606,7 +3606,7 @@ QUnit.test('reply to message from inbox (message linked to document)', async fun
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector('.o_Message').dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId,
|
||||
"should still display message with ID 100 after posting reply"
|
||||
);
|
||||
assert.notOk(
|
||||
@@ -3652,7 +3652,7 @@ QUnit.test('load recent messages from thread (already loaded some old messages)'
|
||||
);
|
||||
assert.strictEqual(
|
||||
document.querySelector('.o_Message').dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId,
|
||||
"the only message initially should be the one marked as 'needaction'"
|
||||
);
|
||||
|
||||
@@ -3661,10 +3661,10 @@ QUnit.test('load recent messages from thread (already loaded some old messages)'
|
||||
func: () => {
|
||||
document.querySelector(`
|
||||
.o_DiscussSidebar_item[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).click();
|
||||
},
|
||||
@@ -3687,7 +3687,7 @@ QUnit.test('load recent messages from thread (already loaded some old messages)'
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -3714,7 +3714,7 @@ QUnit.test('load recent messages from thread (already loaded some old messages)'
|
||||
assert.strictEqual(
|
||||
document.querySelectorAll(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -3927,7 +3927,7 @@ QUnit.test('mark a single message as read should only move this message to "Hist
|
||||
await afterNextRender(() =>
|
||||
document.querySelector(`
|
||||
.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 1).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 1 }).localId
|
||||
}"] .o_Message_commandMarkAsRead
|
||||
`).click()
|
||||
);
|
||||
@@ -3939,7 +3939,7 @@ QUnit.test('mark a single message as read should only move this message to "Hist
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 2).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 2 }).localId
|
||||
}"]`,
|
||||
"message still in inbox should be the one not marked as read"
|
||||
);
|
||||
@@ -3968,7 +3968,7 @@ QUnit.test('mark a single message as read should only move this message to "Hist
|
||||
assert.containsOnce(
|
||||
document.body,
|
||||
`.o_Message[data-message-local-id="${
|
||||
this.env.models['mail.message'].find(message => message.id === 1).localId
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 1 }).localId
|
||||
}"]`,
|
||||
"message moved in history should be the one marked as read"
|
||||
);
|
||||
|
||||
@@ -62,7 +62,7 @@ QUnit.test('basic rendering', async function (assert) {
|
||||
const messageEl = document.querySelector('.o_Message');
|
||||
assert.strictEqual(
|
||||
messageEl.dataset.messageLocalId,
|
||||
this.env.models['mail.message'].find(message => message.id === 100).localId,
|
||||
this.env.models['mail.message'].findFromIdentifyingData({ id: 100 }).localId,
|
||||
"message component should be linked to message store model"
|
||||
);
|
||||
assert.strictEqual(
|
||||
|
||||
@@ -15,11 +15,12 @@ class MessageSeenIndicator extends Component {
|
||||
useStore(props => {
|
||||
const message = this.env.models['mail.message'].get(props.messageLocalId);
|
||||
const thread = this.env.models['mail.thread'].get(props.threadLocalId);
|
||||
const messageSeenIndicator = this.env.models['mail.message_seen_indicator'].find(
|
||||
messageSeenIndicator =>
|
||||
messageSeenIndicator.message === message &&
|
||||
messageSeenIndicator.thread === thread
|
||||
);
|
||||
const messageSeenIndicator = thread && thread.model === 'mail.channel'
|
||||
? this.env.models['mail.message_seen_indicator'].findFromIdentifyingData({
|
||||
channelId: thread.id,
|
||||
messageId: message.id,
|
||||
})
|
||||
: undefined;
|
||||
return {
|
||||
messageSeenIndicator: messageSeenIndicator ? messageSeenIndicator.__state : undefined,
|
||||
};
|
||||
@@ -103,10 +104,13 @@ class MessageSeenIndicator extends Component {
|
||||
* @returns {mail.message_seen_indicator}
|
||||
*/
|
||||
get messageSeenIndicator() {
|
||||
return this.env.models['mail.message_seen_indicator'].find(messageSeenIndicator =>
|
||||
messageSeenIndicator.message === this.message &&
|
||||
messageSeenIndicator.thread === this.thread
|
||||
);
|
||||
if (!this.thread || this.thread.model !== 'mail.channel') {
|
||||
return undefined;
|
||||
}
|
||||
return this.env.models['mail.message_seen_indicator'].findFromIdentifyingData({
|
||||
channelId: this.thread.id,
|
||||
messageId: this.message.id,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -621,10 +621,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -634,10 +634,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -656,10 +656,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -669,10 +669,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
0,
|
||||
@@ -694,10 +694,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
0,
|
||||
@@ -707,10 +707,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -729,10 +729,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 10 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 10,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
@@ -742,10 +742,10 @@ QUnit.test('filtered previews', async function (assert) {
|
||||
document.querySelectorAll(`
|
||||
.o_MessagingMenu_dropdownMenu
|
||||
.o_ThreadPreview[data-thread-local-id="${
|
||||
this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
).localId
|
||||
this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
}).localId
|
||||
}"]
|
||||
`).length,
|
||||
1,
|
||||
|
||||
@@ -54,10 +54,10 @@ QUnit.test('chat: correspondent is typing', async function (assert) {
|
||||
members: [this.data.currentPartnerId, 17],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadIcon(thread);
|
||||
|
||||
assert.containsOnce(
|
||||
|
||||
+20
-20
@@ -49,10 +49,10 @@ QUnit.test('receive other member typing status "is typing"', async function (ass
|
||||
members: [this.data.currentPartnerId, 17],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
@@ -88,10 +88,10 @@ QUnit.test('receive other member typing status "is typing" then "no longer is ty
|
||||
members: [this.data.currentPartnerId, 17],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
@@ -146,10 +146,10 @@ QUnit.test('assume other member typing status becomes "no longer is typing" afte
|
||||
await this.start({
|
||||
hasTimeControl: true,
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
@@ -194,10 +194,10 @@ QUnit.test ('other member typing status "is typing" refreshes 60 seconds timer o
|
||||
await this.start({
|
||||
hasTimeControl: true,
|
||||
});
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
@@ -262,10 +262,10 @@ QUnit.test('receive several other members typing status "is typing"', async func
|
||||
members: [this.data.currentPartnerId, 10, 11, 12],
|
||||
});
|
||||
await this.start();
|
||||
const thread = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 20 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const thread = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 20,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
await this.createThreadTextualTypingStatusComponent(thread);
|
||||
|
||||
assert.strictEqual(
|
||||
|
||||
@@ -27,7 +27,7 @@ QUnit.test('create (txt)', async function (assert) {
|
||||
assert.expect(9);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -36,8 +36,8 @@ QUnit.test('create (txt)', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(this.env.models['mail.attachment'].find(attachment => attachment.id === 750), attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }), attachment);
|
||||
assert.strictEqual(attachment.filename, "test.txt");
|
||||
assert.strictEqual(attachment.id, 750);
|
||||
assert.notOk(attachment.isUploading);
|
||||
@@ -49,7 +49,7 @@ QUnit.test('displayName', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -58,8 +58,8 @@ QUnit.test('displayName', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment.displayName, "test.txt");
|
||||
});
|
||||
|
||||
@@ -67,7 +67,7 @@ QUnit.test('extension', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -76,8 +76,8 @@ QUnit.test('extension', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment.extension, 'txt');
|
||||
});
|
||||
|
||||
@@ -85,7 +85,7 @@ QUnit.test('fileType', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -94,10 +94,10 @@ QUnit.test('fileType', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].find(attachment =>
|
||||
attachment.id === 750)
|
||||
);
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].findFromIdentifyingData({
|
||||
id: 750,
|
||||
}));
|
||||
assert.strictEqual(attachment.fileType, 'text');
|
||||
});
|
||||
|
||||
@@ -105,7 +105,7 @@ QUnit.test('isTextFile', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -114,8 +114,8 @@ QUnit.test('isTextFile', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.ok(attachment.isTextFile);
|
||||
});
|
||||
|
||||
@@ -123,7 +123,7 @@ QUnit.test('isViewable', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
|
||||
const attachment = this.env.models['mail.attachment'].create({
|
||||
filename: "test.txt",
|
||||
@@ -132,8 +132,8 @@ QUnit.test('isViewable', async function (assert) {
|
||||
name: "test.txt",
|
||||
});
|
||||
assert.ok(attachment);
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.strictEqual(attachment, this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.ok(attachment.isViewable);
|
||||
});
|
||||
|
||||
|
||||
@@ -29,13 +29,13 @@ QUnit.test('create', async function (assert) {
|
||||
assert.expect(31);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.partner'].find(partner => partner.id === 5));
|
||||
assert.notOk(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.notOk(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.notOk(this.env.models['mail.message'].find(message => message.id === 4000));
|
||||
assert.notOk(this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 }));
|
||||
assert.notOk(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.notOk(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.notOk(this.env.models['mail.message'].findFromIdentifyingData({ id: 4000 }));
|
||||
|
||||
const thread = this.env.models['mail.thread'].create({
|
||||
id: 100,
|
||||
@@ -58,16 +58,16 @@ QUnit.test('create', async function (assert) {
|
||||
originThread: [['link', thread]],
|
||||
});
|
||||
|
||||
assert.ok(this.env.models['mail.partner'].find(partner => partner.id === 5));
|
||||
assert.ok(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.ok(this.env.models['mail.attachment'].find(attachment => attachment.id === 750));
|
||||
assert.ok(this.env.models['mail.message'].find(message => message.id === 4000));
|
||||
assert.ok(this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 }));
|
||||
assert.ok(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.ok(this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 }));
|
||||
assert.ok(this.env.models['mail.message'].findFromIdentifyingData({ id: 4000 }));
|
||||
|
||||
assert.ok(message);
|
||||
assert.strictEqual(this.env.models['mail.message'].find(message => message.id === 4000), message);
|
||||
assert.strictEqual(this.env.models['mail.message'].findFromIdentifyingData({ id: 4000 }), message);
|
||||
assert.strictEqual(message.body, "<p>Test</p>");
|
||||
assert.ok(message.date instanceof moment);
|
||||
assert.strictEqual(
|
||||
@@ -75,36 +75,36 @@ QUnit.test('create', async function (assert) {
|
||||
"2019-05-05 10:00:00"
|
||||
);
|
||||
assert.strictEqual(message.id, 4000);
|
||||
assert.strictEqual(message.originThread, this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.strictEqual(message.originThread, this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.ok(
|
||||
message.threads.includes(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
))
|
||||
message.threads.includes(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}))
|
||||
);
|
||||
// from partnerId being in needaction_partner_ids
|
||||
assert.ok(message.threads.includes(this.env.messaging.inbox));
|
||||
// from partnerId being in starred_partner_ids
|
||||
assert.ok(message.threads.includes(this.env.messaging.starred));
|
||||
const attachment = this.env.models['mail.attachment'].find(attachment => attachment.id === 750);
|
||||
const attachment = this.env.models['mail.attachment'].findFromIdentifyingData({ id: 750 });
|
||||
assert.ok(attachment);
|
||||
assert.strictEqual(attachment.filename, "test.txt");
|
||||
assert.strictEqual(attachment.id, 750);
|
||||
assert.notOk(attachment.isUploading);
|
||||
assert.strictEqual(attachment.mimetype, 'text/plain');
|
||||
assert.strictEqual(attachment.name, "test.txt");
|
||||
const channel = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const channel = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
assert.ok(channel);
|
||||
assert.strictEqual(channel.model, 'mail.channel');
|
||||
assert.strictEqual(channel.id, 100);
|
||||
assert.strictEqual(channel.name, "General");
|
||||
const partner = this.env.models['mail.partner'].find(partner => partner.id === 5);
|
||||
const partner = this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 });
|
||||
assert.ok(partner);
|
||||
assert.strictEqual(partner.display_name, "Demo");
|
||||
assert.strictEqual(partner.id, 5);
|
||||
|
||||
+13
-13
@@ -505,7 +505,7 @@ function factory(dependencies) {
|
||||
_handleNotificationPartnerDeletion({ message_ids }) {
|
||||
const moderationMailbox = this.env.messaging.moderation;
|
||||
for (const id of message_ids) {
|
||||
const message = this.env.models['mail.message'].find(message => message.id === id);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id });
|
||||
if (message) {
|
||||
if (
|
||||
message.moderation_status === 'pending_moderation' &&
|
||||
@@ -558,7 +558,7 @@ function factory(dependencies) {
|
||||
// Furthermore, server should not send back all message_ids marked as read
|
||||
// but something like last read message_id or something like that.
|
||||
// (just imagine you mark 1000 messages as read ... )
|
||||
const message = this.env.models['mail.message'].find(m => m.id === message_id);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id: message_id });
|
||||
if (message) {
|
||||
message.update({
|
||||
isNeedaction: false,
|
||||
@@ -571,10 +571,10 @@ function factory(dependencies) {
|
||||
let channels;
|
||||
if (channel_ids) {
|
||||
channels = channel_ids
|
||||
.map(id => this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === id &&
|
||||
thread.model === 'mail.channel'
|
||||
))
|
||||
.map(id => this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id,
|
||||
model: 'mail.channel',
|
||||
}))
|
||||
.filter(thread => !!thread);
|
||||
} else {
|
||||
// flux specific: channel_ids unset means "mark all as read"
|
||||
@@ -617,9 +617,9 @@ function factory(dependencies) {
|
||||
_handleNotificationPartnerToggleStar({ message_ids = [], starred }) {
|
||||
const starredMailbox = this.env.messaging.starred;
|
||||
for (const messageId of message_ids) {
|
||||
const message = this.env.models['mail.message'].find(message =>
|
||||
message.id === messageId
|
||||
);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({
|
||||
id: messageId,
|
||||
});
|
||||
if (!message) {
|
||||
continue;
|
||||
}
|
||||
@@ -662,10 +662,10 @@ function factory(dependencies) {
|
||||
* @param {integer} channelId
|
||||
*/
|
||||
_handleNotificationPartnerUnsubscribe(channelId) {
|
||||
const channel = this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === channelId &&
|
||||
thread.model === 'mail.channel'
|
||||
);
|
||||
const channel = this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: channelId,
|
||||
model: 'mail.channel',
|
||||
});
|
||||
if (!channel) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -547,14 +547,10 @@ function factory(dependencies) {
|
||||
* @returns {mail.thread_cache}
|
||||
*/
|
||||
cache(stringifiedDomain = '[]') {
|
||||
let cache = this.caches.find(cache => cache.stringifiedDomain === stringifiedDomain);
|
||||
if (!cache) {
|
||||
cache = this.env.models['mail.thread_cache'].create({
|
||||
stringifiedDomain,
|
||||
thread: [['link', this]],
|
||||
});
|
||||
}
|
||||
return cache;
|
||||
return this.env.models['mail.thread_cache'].insert({
|
||||
stringifiedDomain,
|
||||
thread: [['link', this]],
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,12 +45,12 @@ QUnit.test('create (channel)', async function (assert) {
|
||||
assert.expect(23);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.partner'].find(partner => partner.id === 9));
|
||||
assert.notOk(this.env.models['mail.partner'].find(partner => partner.id === 10));
|
||||
assert.notOk(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.notOk(this.env.models['mail.partner'].findFromIdentifyingData({ id: 9 }));
|
||||
assert.notOk(this.env.models['mail.partner'].findFromIdentifyingData({ id: 10 }));
|
||||
assert.notOk(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
|
||||
const thread = this.env.models['mail.thread'].create({
|
||||
channel_type: 'channel',
|
||||
@@ -71,18 +71,18 @@ QUnit.test('create (channel)', async function (assert) {
|
||||
serverMessageUnreadCounter: 5,
|
||||
});
|
||||
assert.ok(thread);
|
||||
assert.ok(this.env.models['mail.partner'].find(partner => partner.id === 9));
|
||||
assert.ok(this.env.models['mail.partner'].find(partner => partner.id === 10));
|
||||
assert.ok(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
const partner9 = this.env.models['mail.partner'].find(partner => partner.id === 9);
|
||||
const partner10 = this.env.models['mail.partner'].find(partner => partner.id === 10);
|
||||
assert.strictEqual(thread, this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 100 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.ok(this.env.models['mail.partner'].findFromIdentifyingData({ id: 9 }));
|
||||
assert.ok(this.env.models['mail.partner'].findFromIdentifyingData({ id: 10 }));
|
||||
assert.ok(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
const partner9 = this.env.models['mail.partner'].findFromIdentifyingData({ id: 9 });
|
||||
const partner10 = this.env.models['mail.partner'].findFromIdentifyingData({ id: 10 });
|
||||
assert.strictEqual(thread, this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 100,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.strictEqual(thread.model, 'mail.channel');
|
||||
assert.strictEqual(thread.channel_type, 'channel');
|
||||
assert.strictEqual(thread.id, 100);
|
||||
@@ -104,11 +104,11 @@ QUnit.test('create (chat)', async function (assert) {
|
||||
assert.expect(15);
|
||||
|
||||
await this.start();
|
||||
assert.notOk(this.env.models['mail.partner'].find(partner => partner.id === 5));
|
||||
assert.notOk(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 200 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.notOk(this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 }));
|
||||
assert.notOk(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 200,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
|
||||
const channel = this.env.models['mail.thread'].create({
|
||||
channel_type: 'chat',
|
||||
@@ -122,16 +122,16 @@ QUnit.test('create (chat)', async function (assert) {
|
||||
model: 'mail.channel',
|
||||
});
|
||||
assert.ok(channel);
|
||||
assert.ok(this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 200 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.ok(this.env.models['mail.partner'].find(partner => partner.id === 5));
|
||||
const partner = this.env.models['mail.partner'].find(partner => partner.id === 5);
|
||||
assert.strictEqual(channel, this.env.models['mail.thread'].find(thread =>
|
||||
thread.id === 200 &&
|
||||
thread.model === 'mail.channel'
|
||||
));
|
||||
assert.ok(this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 200,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.ok(this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 }));
|
||||
const partner = this.env.models['mail.partner'].findFromIdentifyingData({ id: 5 });
|
||||
assert.strictEqual(channel, this.env.models['mail.thread'].findFromIdentifyingData({
|
||||
id: 200,
|
||||
model: 'mail.channel',
|
||||
}));
|
||||
assert.strictEqual(channel.model, 'mail.channel');
|
||||
assert.strictEqual(channel.channel_type, 'chat');
|
||||
assert.strictEqual(channel.id, 200);
|
||||
|
||||
+3
-3
@@ -57,9 +57,9 @@ const PartnerInviteDialog = Dialog.extend({
|
||||
if (item.id === 'odoobot') {
|
||||
status = 'bot';
|
||||
} else {
|
||||
const partner = this.env.models['mail.partner'].find(partner =>
|
||||
partner.id === item.id
|
||||
);
|
||||
const partner = this.env.models['mail.partner'].findFromIdentifyingData({
|
||||
id: item.id,
|
||||
});
|
||||
status = partner.im_status;
|
||||
}
|
||||
const $status = QWeb.render('mail.widgets.UserStatus', { status });
|
||||
|
||||
@@ -638,7 +638,7 @@ QUnit.test('Missing Required Fields', async function (assert) {
|
||||
hasThreadView: true,
|
||||
thread: [['insert', { id: 20, model: 'res.partner' }]],
|
||||
});
|
||||
const message = this.env.models['mail.message'].find(message => message.id === 10);
|
||||
const message = this.env.models['mail.message'].findFromIdentifyingData({ id: 10 });
|
||||
await this.createMessageComponent(message, {
|
||||
threadViewLocalId: threadViewer.threadView.localId,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user