209 lines
7.9 KiB
JavaScript
209 lines
7.9 KiB
JavaScript
import { registry } from "@web/core/registry";
|
|
import { click, contains, inputFiles } from "@web/../tests/utils";
|
|
|
|
registry.category("web_tour.tours").add("discuss_channel_public_tour.js", {
|
|
steps: () => [
|
|
{
|
|
trigger: ".o-mail-Discuss",
|
|
},
|
|
{
|
|
content: "Check that we are on channel page",
|
|
trigger: ".o-mail-Thread",
|
|
run() {
|
|
if (!window.location.pathname.startsWith("/discuss/channel")) {
|
|
console.error("Channel secret token is still present in URL.");
|
|
}
|
|
const errors = odoo.loader.findErrors();
|
|
if (Object.keys(errors).length) {
|
|
console.error("Couldn't load all JS modules.", errors);
|
|
}
|
|
document.body.classList.add("o_discuss_channel_public_modules_loaded");
|
|
if (
|
|
document.title !== document.querySelector(".o-mail-Discuss-threadName")?.value
|
|
) {
|
|
console.error("Tab title should match conversation name.");
|
|
}
|
|
},
|
|
},
|
|
{
|
|
content: "Wait for all modules loaded check in previous step",
|
|
trigger: ".o_discuss_channel_public_modules_loaded",
|
|
},
|
|
{
|
|
content: "Write something in composer",
|
|
trigger: ".o-mail-Composer-input",
|
|
run: "edit cheese",
|
|
},
|
|
{
|
|
content: "Add a text file in composer",
|
|
trigger: ".o-mail-Composer button[aria-label='Attach files']",
|
|
async run() {
|
|
const text = new File(["hello, world"], "text.txt", { type: "text/plain" });
|
|
await inputFiles(".o-mail-Composer-coreMain .o_input_file", [text]);
|
|
},
|
|
},
|
|
{
|
|
trigger: ".o-mail-AttachmentCard:not(.o-isUploading)", // waiting the attachment to be uploaded
|
|
},
|
|
{
|
|
content: "Check the text attachment is listed",
|
|
trigger: '.o-mail-AttachmentCard[title="text.txt"]',
|
|
},
|
|
{
|
|
content: "Add an image file in composer",
|
|
trigger: ".o-mail-Composer button[aria-label='Attach files']",
|
|
async run() {
|
|
await inputFiles(".o-mail-Composer-coreMain .o_input_file", [
|
|
new File(
|
|
[
|
|
await (
|
|
await fetch(
|
|
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2P4v5ThPwAG7wKklwQ/bwAAAABJRU5ErkJggg=="
|
|
)
|
|
).blob(),
|
|
],
|
|
"image.png",
|
|
{ type: "image/png" }
|
|
),
|
|
]);
|
|
},
|
|
},
|
|
{
|
|
trigger: ".o-mail-AttachmentImage:not(.o-isUploading)",
|
|
},
|
|
{
|
|
content: "Check the image attachment is listed",
|
|
trigger: '.o-mail-AttachmentImage[title="image.png"]',
|
|
async run() {
|
|
const store = odoo.__WOWL_DEBUG__.root.env.services["mail.store"];
|
|
if (store.self.type === "guest") {
|
|
const src = this.anchor.querySelector("img").src;
|
|
const token = store.Attachment.get(
|
|
(src.match("/web/image/([0-9]+)") || []).at(-1)
|
|
)?.access_token;
|
|
if (!(token && src.includes(`access_token=${token}`))) {
|
|
throw new Error("Access token of the attachment isn't correct.");
|
|
}
|
|
}
|
|
},
|
|
},
|
|
{
|
|
content: "Send message",
|
|
trigger: ".o-mail-Composer-send:enabled",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Check message is shown",
|
|
trigger: '.o-mail-Message-body:contains("cheese")',
|
|
},
|
|
{
|
|
content: "Check message contains the attachment",
|
|
trigger: '.o-mail-Message .o-mail-AttachmentCard:contains("text.txt")',
|
|
},
|
|
{
|
|
trigger: ".o-mail-Message-textContent:contains(cheese)",
|
|
run: "hover && click .o-mail-Message [title='Add a Reaction']",
|
|
},
|
|
{
|
|
trigger: ".o-EmojiPicker .o-Emoji:contains('🙂')",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Reload page (fetch reactions)",
|
|
trigger: ".o-mail-Message",
|
|
run() {
|
|
location.reload();
|
|
},
|
|
},
|
|
{
|
|
content: "Remove reaction",
|
|
trigger: ".o-mail-MessageReaction:contains('🙂')",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Reload page (fetch reactions)",
|
|
trigger: ".o-mail-Message",
|
|
run() {
|
|
location.reload();
|
|
},
|
|
},
|
|
{
|
|
trigger: ".o-mail-Message:not(:has(.o-mail-MessageReaction))",
|
|
},
|
|
{
|
|
content: "Click on more menu",
|
|
trigger: ".o-mail-Message-textContent:contains(cheese)",
|
|
run: "hover && click .o-mail-Message [title='Expand']",
|
|
},
|
|
{
|
|
content: "Click on edit",
|
|
trigger: ".o-mail-Message-moreMenu [title='Edit'], .o-mail-Message [title='Edit']",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Edit message",
|
|
trigger: ".o-mail-Message .o-mail-Composer-input",
|
|
run: "edit vegetables",
|
|
},
|
|
{
|
|
content: "Add one more file in composer",
|
|
trigger: ".o-mail-Message button[aria-label='Attach files']",
|
|
async run() {
|
|
const extratxt = new File(["hello 2"], "extra.txt", { type: "text/plain" });
|
|
await inputFiles(".o-mail-Message .o_input_file", [extratxt]);
|
|
},
|
|
},
|
|
{
|
|
trigger: ".o-mail-Message .o-mail-Composer .o-mail-AttachmentCard:not(.o-isUploading)", // waiting the attachment to be uploaded
|
|
},
|
|
{
|
|
content: "Check the earlier provided extra attachment is listed",
|
|
trigger: '.o-mail-Message .o-mail-Composer .o-mail-AttachmentCard[title="extra.txt"]',
|
|
},
|
|
{
|
|
content: "Save edited message",
|
|
trigger: ".o-mail-Message a:contains(save)",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Check message is edited",
|
|
trigger: '.o-mail-Message-body:contains("vegetables")',
|
|
},
|
|
{
|
|
content: "Check edited message contains the first attachment",
|
|
trigger: '.o-mail-Message .o-mail-AttachmentCard:contains("text.txt")',
|
|
},
|
|
{
|
|
content: "Check edited message contains the extra attachment",
|
|
trigger: '.o-mail-Message .o-mail-AttachmentCard:contains("extra.txt")',
|
|
async run() {
|
|
await click(".o-mail-AttachmentCard-unlink", {
|
|
parent: [".o-mail-AttachmentCard", { text: "extra.txt" }],
|
|
});
|
|
await click(".btn", { text: "Ok", parent: [".modal", { text: "Confirmation" }] });
|
|
await contains(".o-mail-AttachmentCard", { text: "extra.txt", count: 0 });
|
|
},
|
|
},
|
|
{
|
|
content: "Open search panel",
|
|
trigger: "button[title='Search Messages']",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Search for the attachment name",
|
|
trigger: ".o_searchview_input",
|
|
run: "edit text.txt",
|
|
},
|
|
{
|
|
content: "Trigger the search",
|
|
trigger: "button[aria-label='Search button']",
|
|
run: "click",
|
|
},
|
|
{
|
|
content: "Check that searched message contains the attachment",
|
|
trigger:
|
|
'.o-mail-SearchMessagesPanel .o-mail-Message .o-mail-AttachmentCard:contains("text.txt")',
|
|
},
|
|
],
|
|
});
|