Files
odoo_source/addons/website/static/tests/tours/automatic_editor.js
T
qsm-odoo accb4b3245 [IMP] website, *: review website tour utils
*: test_website, website_blog, website_crm, website_event,
   website_forum, website_hr_recruitment, website_mass_mailing,
   website_sale, website_sale_wishlist, website_slides

- Make sure that all website tours reaching the website preview before
  their first step use the related website util to register their tour.

- Rename the website util to register a tour starting on the website
  preview from `registerEditionTour` to `registerWebsitePreviewTour`.
  Having a method using "Edition" in its name and having a boolean
  parameter named `edition` was a bit... strange.

- For both non edit mode and edit mode as a first step, ensure the util
  sets a high timeout for the first step. Indeed loading both the
  backend and the frontend (in the iframe) and potentially starting the
  edit mode can take a long time in automatic tests. We'll try and
  decrease the need for this high timeout of course.

- Review the implementation of those utils to be more consistent and
  also fix one or two mistakes in them.

closes odoo/odoo#100024

Related: odoo/design-themes#588
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-09-12 17:33:39 +02:00

100 lines
3.1 KiB
JavaScript

odoo.define('website.tour.automatic_editor', function (require) {
'use strict';
const wTourUtils = require("website.tour_utils");
wTourUtils.registerWebsitePreviewTour('automatic_editor_on_new_website', {
test: true,
url: '/',
},
[
{
content: "Select the language dropdown",
trigger: 'iframe .js_language_selector .dropdown-toggle'
},
{
content: "click on Add a language",
trigger: 'iframe a.o_add_language',
},
{
content: "type Parseltongue",
trigger: 'div[name="lang_ids"] .o_input_dropdown input',
run: 'text Parseltongue',
},
{
content: 'select Parseltongue',
trigger: '.dropdown-item:contains(Parseltongue)',
in_modal: false,
},
{
content: "load parseltongue",
extra_trigger: '.modal div[name="lang_ids"] .rounded-pill .o_tag_badge_text:contains(Parseltongue)',
trigger: '.modal-footer button[name=lang_install]',
},
{
content: "Select the language dropdown",
trigger: 'iframe .js_language_selector .dropdown-toggle',
},
{
content: "Select parseltongue",
trigger: 'iframe a.js_change_lang[data-url_code=pa_GB]',
extra_trigger: 'iframe a.js_change_lang .o_lang_flag',
},
{
content: "Check that we're on parseltongue and then go to settings",
trigger: 'iframe html[lang=pa-GB]',
run: () => {
// Now go through the settings for a new website. A frontend_lang
// cookie was set during previous steps. It should not be used when
// redirecting to the frontend in the following steps.
window.location.href = '/web#action=website.action_website_configuration';
}
},
{
content: "create a new website",
trigger: 'button[name="action_website_create_new"]',
},
{
content: "insert website name",
trigger: 'div[name="name"] input',
run: 'text Website EN'
},
{
content: "validate the website creation modal",
trigger: 'button.btn-primary'
},
{
content: "skip configurator",
// This trigger targets the skip button, it doesn't have a more
// explicit class or ID.
trigger: '.o_configurator_container .container-fluid .btn.btn-link'
},
{
content: "make hover button appear",
trigger: '.o_theme_preview',
run: () => {
$('.o_theme_preview .o_button_area').attr('style', 'visibility: visible; opacity: 1;');
},
},
{
content: "Install a theme",
trigger: 'button[name="button_choose_theme"]'
},
{
content: "Check that the editor is loaded",
trigger: 'iframe body.editor_enable',
timeout: 30000,
run: () => null, // it's a check
},
{
content: "exit edit mode",
trigger: '.o_we_website_top_actions button.btn-primary:contains("Save")',
},
{
content: "wait for editor to close",
trigger: 'iframe body:not(.editor_enable)',
run: () => null, // It's a check
}
]);
});