Odoo18-Base/addons/test_website/static/tests/tours/restricted_editor.js
2025-01-06 10:57:38 +07:00

142 lines
4.0 KiB
JavaScript

/** @odoo-module **/
import {
clickOnSave,
clickOnEditAndWaitEditMode,
clickOnExtraMenuItem,
registerWebsitePreviewTour,
} from '@website/js/tours/tour_utils';
const checkNoTranslate = {
content: "Check there is no translate button",
trigger: ".o_menu_systray:not(:contains(.o_translate_website_container))",
};
const translate = [{
content: "Open Edit menu",
trigger: ".o_menu_systray .o_edit_website_container button.o-dropdown-toggle-custo:contains(edit)",
run: "click",
}, {
content: "Click on translate button",
trigger: ".o_popover .o_translate_website_dropdown_item:contains(translate)",
run: "click",
}];
const closeErrorDialog = [{
content: "Check has error dialog",
trigger: ".modal:contains(error) .o_error_dialog.modal-content",
}, {
content: "Close error dialog",
trigger: ".modal .modal-footer button.btn.btn-primary",
run: "click",
}, {
trigger: "body:not(:has(.modal))",
}];
const switchTo = (lang) => {
return [{
content: `Switch to ${lang}`,
trigger: `:iframe .js_change_lang[data-url_code='${lang}']`,
run: "click",
}, {
content: `Wait until ${lang} is applied`,
trigger: `:iframe html[lang*="${lang}"]`,
}];
};
const goToMenuItem = [
clickOnExtraMenuItem({}, true),
{
content: "Navigate to model item page",
trigger: ":iframe a[href='/test_website/model_item/1']",
run: "click",
},
];
registerWebsitePreviewTour('test_restricted_editor_only', {
url: '/',
}, () => [
// Home
checkNoTranslate,
...clickOnEditAndWaitEditMode(),
{
content: "Check icons cannot be dragged",
trigger: "#oe_snippets .oe_snippet[name='Intro'].o_disabled",
},
...clickOnSave(),
...switchTo('fr'),
...translate,
...closeErrorDialog,
...switchTo('en'),
// Model item
...goToMenuItem,
checkNoTranslate,
...clickOnEditAndWaitEditMode(),
{
content: "Check icons cannot be dragged",
trigger: "#oe_snippets .oe_snippet[name='Intro'].o_disabled",
},
...switchTo('fr'),
...translate,
...closeErrorDialog,
]);
registerWebsitePreviewTour('test_restricted_editor_test_admin', {
url: '/',
}, () => [
// Home
checkNoTranslate,
...clickOnEditAndWaitEditMode(),
{
content: "Check icons cannot be dragged",
trigger: "#oe_snippets .oe_snippet[name='Intro'].o_disabled",
},
...clickOnSave(),
...switchTo('fr'),
...translate,
...closeErrorDialog,
...switchTo('en'),
// Model item
...goToMenuItem,
checkNoTranslate,
...clickOnEditAndWaitEditMode(),
{
content: "Check icons can be dragged",
trigger: "#oe_snippets .oe_snippet[name='Intro']:not(.o_disabled)",
},
{
content: "Drag the Intro snippet group",
trigger: '#oe_snippets .oe_snippet[name="Intro"] .oe_snippet_thumbnail:not(.o_we_ongoing_insertion)',
run: "drag_and_drop :iframe [data-oe-expression='record.website_description']",
},
{
content: "Click on the s_banner snippet in the dialog",
trigger: ':iframe .o_snippet_preview_wrap[data-snippet-id="s_banner"]',
run: "click",
},
{
content: "Change name",
trigger: ":iframe [data-oe-expression='record.name']",
run: "editor New value",
},
...clickOnSave(),
...switchTo('fr'),
...translate,
{
content: "Close the dialog",
trigger: ".modal .modal-footer .btn-primary",
run: "click",
},
{
content: "Assure the modal is well closed",
trigger: "body:not(:has(.modal))",
},
{
content: "Translate name",
trigger: ":iframe [data-oe-expression='record.name']",
run: "editor Nouvelle valeur",
},
{
content: "Translate some banner text",
trigger: ":iframe [data-oe-expression='record.website_description'] strong.o_default_snippet_text",
run: "editor potentiel.",
},
...clickOnSave(),
]);