71 lines
2.9 KiB
JavaScript
71 lines
2.9 KiB
JavaScript
|
/* @odoo-module */
|
||
|
|
||
|
import { registry } from "@web/core/registry";
|
||
|
import { contains, scroll } from "@web/../tests/utils";
|
||
|
|
||
|
registry.category("web_tour.tours").add("mail_message_load_order_tour", {
|
||
|
test: true,
|
||
|
steps: () => [
|
||
|
{
|
||
|
trigger: ".o-mail-DiscussSidebarChannel:contains(MyTestChannel)",
|
||
|
run: "click",
|
||
|
},
|
||
|
{
|
||
|
trigger: ".o-mail-Thread .o-mail-Message",
|
||
|
async run() {
|
||
|
await contains(".o-mail-Thread .o-mail-Message", { count: 30 });
|
||
|
await contains(".o-mail-Thread", { scroll: "bottom" });
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
trigger: "*[title='Pinned Messages']",
|
||
|
run: "click",
|
||
|
},
|
||
|
{
|
||
|
trigger: ".o-mail-MessageCard-jump",
|
||
|
run: "click",
|
||
|
},
|
||
|
{
|
||
|
// Messages depends on FETCH_LIMIT (currently set to 30) in
|
||
|
// the thread service. Thus, at first load the message range
|
||
|
// will be (31 - 60). This trigger ensures the next messages
|
||
|
// are fetched after jumping to the message.
|
||
|
trigger: ".o-mail-Thread .o-mail-Message:first:not(:contains(31))",
|
||
|
async run() {
|
||
|
await contains(".o-mail-Thread .o-mail-Message", { count: 16 });
|
||
|
await contains(".o-mail-Thread", { scroll: 0 });
|
||
|
// ensure 1 - 16 are loaded in order: 15 below and the
|
||
|
// one we're loading messages around.
|
||
|
const messages = Array.from(
|
||
|
document.querySelectorAll(".o-mail-Thread .o-mail-Message-content")
|
||
|
).map((el) => el.innerText);
|
||
|
for (let i = 0; i < 16; i++) {
|
||
|
if (messages[i] !== (i + 1).toString()) {
|
||
|
throw new Error("Wrong message order after loading around");
|
||
|
}
|
||
|
}
|
||
|
await scroll(".o-mail-Thread", "bottom");
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
// After jumping to the pinned message, the message range
|
||
|
// was (1 -16): 15 before (but none were found), 15 after
|
||
|
// and the pinned message itself. This trigger ensures the
|
||
|
// next messages are fetched after scrolling to the bottom.
|
||
|
trigger: ".o-mail-Thread .o-mail-Message:contains(17)",
|
||
|
async run() {
|
||
|
await contains(".o-mail-Thread .o-mail-Message", { count: 46 });
|
||
|
// ensure 1 - 46 are loaded in order.
|
||
|
const messages = Array.from(
|
||
|
document.querySelectorAll(".o-mail-Thread .o-mail-Message-content")
|
||
|
).map((el) => el.innerText);
|
||
|
for (let i = 0; i < 46; i++) {
|
||
|
if (messages[i] !== (i + 1).toString()) {
|
||
|
throw new Error("Wrong message order after loading after");
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
});
|