mail/static/tests/tours/mail_message_load_order_tour.js

71 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-05-03 12:40:35 +03:00
/* @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");
}
}
},
},
],
});