Files
odoo_source/addons/mail/static/tests/tools/debug_manager_tests.js
T
Samuel Degueldre 4c7ef96974 [REF] web: refactor debug menu to use context in env instead of service
This makes the debug menu more natural to use, and makes the difference
between the "in-dialog" and "out-of-dialog" debug contexts explicit.

closes odoo/odoo#74346

Related: odoo/enterprise#19967
Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2021-07-30 06:01:42 +00:00

63 lines
2.2 KiB
JavaScript

/** @odoo-module **/
import { manageMessages } from "@mail/js/tools/debug_manager";
import { click, legacyExtraNextTick, patchWithCleanup } from "@web/../tests/helpers/utils";
import { createWebClient, doAction, getActionManagerServerData } from "@web/../tests/webclient/helpers";
import { registry } from "@web/core/registry";
QUnit.module("DebugMenu");
QUnit.test("Manage Messages", async function (assert) {
assert.expect(6);
patchWithCleanup(odoo, { debug: "1" });
const serverData = getActionManagerServerData();
// Add fake "mail.message" model and arch
serverData.models["mail.message"] = {
fields: { name: { string: "Name", type: "char" } },
records: [],
};
Object.assign(serverData.views, {
"mail.message,false,list": `<tree/>`,
"mail.message,false,form": `<form/>`,
"mail.message,false,search": `<search/>`,
});
registry.category("debug").category("form").add("manageMessages", manageMessages);
async function mockRPC(route, args) {
if (args.method === "check_access_rights") {
return true;
}
if (route === "/web/dataset/search_read" && args.model === "mail.message") {
assert.strictEqual(args.context.default_res_id, 5);
assert.strictEqual(args.context.default_res_model, "partner");
assert.deepEqual(args.domain, ["&", ["res_id", "=", 5], ["model", "=", "partner"]]);
}
}
const wc = await createWebClient({ serverData, mockRPC });
await doAction(wc, 3, { viewType: "form", props: { resId: 5 } });
await legacyExtraNextTick();
await click(wc.el, ".o_debug_manager .o_dropdown_toggler");
const dropdownItems = wc.el.querySelectorAll(
".o_debug_manager .o_dropdown_menu .o_dropdown_item"
);
assert.strictEqual(dropdownItems.length, 1);
assert.strictEqual(
dropdownItems[0].innerText.trim(),
"Manage Messages",
"should have correct menu item text"
);
await click(dropdownItems[0]);
await legacyExtraNextTick();
assert.strictEqual(
wc.el.querySelector(".breadcrumb-item.active").innerText.trim(),
"Manage Messages"
);
});