129 lines
4.6 KiB
JavaScript
129 lines
4.6 KiB
JavaScript
/* @odoo-module */
|
|
|
|
import { registry } from "@web/core/registry";
|
|
import { contains, createFile, inputFiles } from "@web/../tests/utils";
|
|
|
|
/**
|
|
* This tour depends on data created by python test in charge of launching it.
|
|
* It is not intended to work when launched from interface. It is needed to test
|
|
* an action (action manager) which is not possible to test with QUnit.
|
|
* @see mail/tests/test_mail_composer.py
|
|
*/
|
|
registry.category("web_tour.tours").add("mail/static/tests/tours/mail_composer_test_tour.js", {
|
|
test: true,
|
|
steps: () => [
|
|
{
|
|
content: "Wait for the chatter to be fully loaded",
|
|
trigger: ".o-mail-Chatter",
|
|
async run() {
|
|
await contains(".o-mail-Message", { count: 1 });
|
|
},
|
|
},
|
|
{
|
|
content: "Click on Send Message",
|
|
trigger: "button:contains(Send message)",
|
|
},
|
|
{
|
|
content: "Write something in composer",
|
|
trigger: ".o-mail-Composer-input",
|
|
run: "text blahblah @Not",
|
|
},
|
|
{
|
|
content: "Mention a partner",
|
|
trigger: ".o-mail-Composer-suggestion:contains(Not A Demo User)",
|
|
},
|
|
{
|
|
content: "Add one file in composer",
|
|
trigger: ".o-mail-Composer button[aria-label='Attach files']",
|
|
async run() {
|
|
await inputFiles(".o-mail-Composer-coreMain .o_input_file", [
|
|
await createFile({
|
|
content: "hello, world",
|
|
contentType: "text/plain",
|
|
name: "text.txt",
|
|
}),
|
|
]);
|
|
},
|
|
},
|
|
{
|
|
content: "Open full composer",
|
|
trigger: "button[aria-label='Full composer']",
|
|
extra_trigger: ".o-mail-AttachmentCard:not(.o-isUploading)", // waiting the attachment to be uploaded
|
|
},
|
|
{
|
|
content: "Check composer keeps open after pushing Escape",
|
|
trigger: ".o_mail_composer_form_view",
|
|
run: () => {
|
|
window.dispatchEvent(
|
|
new KeyboardEvent("keydown", {
|
|
bubbles: true,
|
|
key: "Escape",
|
|
})
|
|
);
|
|
},
|
|
},
|
|
{
|
|
content: "Check the earlier provided attachment is listed",
|
|
trigger: '.o_attachment[title="text.txt"]',
|
|
run() {},
|
|
},
|
|
{
|
|
content: "Check subject is autofilled",
|
|
trigger: '[name="subject"] input',
|
|
run() {
|
|
const subjectValue = document.querySelector('[name="subject"] input').value;
|
|
if (subjectValue !== "Jane") {
|
|
console.error(
|
|
`Full composer should have "Jane" in subject input (actual: ${subjectValue})`
|
|
);
|
|
}
|
|
},
|
|
},
|
|
{
|
|
content: "Check composer content is kept",
|
|
trigger: '.o_field_html[name="body"]',
|
|
run() {
|
|
const bodyContent = document.querySelector(
|
|
'.o_field_html[name="body"]'
|
|
).textContent;
|
|
if (!bodyContent.includes("blahblah @Not A Demo User")) {
|
|
console.error(
|
|
`Full composer should contain text from small composer ("blahblah @Not A Demo User") in body input (actual: ${bodyContent})`
|
|
);
|
|
}
|
|
const mentionLink = document.querySelector(
|
|
'.o_field_html[name="body"] a'
|
|
).textContent;
|
|
if (!mentionLink.includes("@Not A Demo User")) {
|
|
console.error(
|
|
`Full composer should contain mention link from small composer ("@Not A Demo User") in body input)`
|
|
);
|
|
}
|
|
},
|
|
},
|
|
{
|
|
content: "Open templates",
|
|
trigger: '.o_field_widget[name="template_id"] input',
|
|
},
|
|
{
|
|
content: "Check a template is listed",
|
|
in_modal: false,
|
|
trigger: '.ui-autocomplete .ui-menu-item a:contains("Test template")',
|
|
run() {},
|
|
},
|
|
{
|
|
content: "Send message",
|
|
trigger: ".o_mail_send",
|
|
},
|
|
{
|
|
content: "Check message is shown",
|
|
trigger: '.o-mail-Message-body:contains("blahblah @Not A Demo User")',
|
|
},
|
|
{
|
|
content: "Check message contains the attachment",
|
|
trigger: '.o-mail-Message .o-mail-AttachmentCard:contains("text.txt")',
|
|
isCheck: true,
|
|
},
|
|
],
|
|
});
|