Odoo18-Base/addons/auth_totp_mail/static/tests/totp_flow.js

79 lines
2.8 KiB
JavaScript
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_service/tour_utils";
import { queryFirst } from "@odoo/hoot-dom";
function openAccountSettingsTab() {
return [{
content: 'Go to settings',
trigger: '[data-menu-xmlid="base.menu_administration"]',
run: "click",
}, {
content: 'Wait for page',
trigger: '.o_menu_brand:contains("Settings")',
}, {
content: "Open Users menu",
trigger: '[data-menu-xmlid="base.menu_users"]',
run: "click",
}, {
content: "Open Users view",
trigger: '[data-menu-xmlid="base.menu_action_res_users"]',
run: function (helpers) {
// funny story: the users view we're trying to reach, sometimes we're
// already there, but if we re-click the next step executes before the
// action has the time to re-load, the one after that doesn't, and our
// selection get discarded by the action reloading, so here try to
// see if we're already on the users action through the breadcrumb and
// just close the menu if so
const breadcrumb = document.querySelector('.breadcrumb');
if (!breadcrumb || !breadcrumb.textContent.includes("Users")) {
// on general settings page, click menu
helpers.click();
} else {
// else close menu
helpers.click('[data-menu-xmlid="base.menu_users"]');
}
}
}];
}
registry.category("web_tour.tours").add('totp_admin_self_invite', {
url: '/odoo',
steps: () => [stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), {
content: "open the user's form",
trigger: "td.o_data_cell:contains(admin)",
run: "click",
}, {
content: "go to Account security Tab",
trigger: "a.nav-link:contains(Account Security)",
run: "click",
}, {
content: "check that user cannot invite themselves to use 2FA.",
trigger: "body",
run: function () {
const inviteBtn = queryFirst('button:contains(Invite to use 2FA)');
if (!inviteBtn) {
document.body.classList.add('CannotInviteYourself');
}
}
}, {
content: "check that user cannot invite themself.",
trigger: "body.CannotInviteYourself",
}]});
registry.category("web_tour.tours").add('totp_admin_invite', {
url: '/odoo',
steps: () => [stepUtils.showAppsMenuItem(), ...openAccountSettingsTab(), {
content: "open the user's form",
trigger: "td.o_data_cell:contains(test_user)",
run: "click",
}, {
content: "go to Account security Tab",
trigger: "a.nav-link:contains(Account Security)",
run: "click",
}, {
content: "check that test_user user can be invited to use 2FA.",
trigger: "button:contains(Invite to use 2FA)",
}]});