import { expect, test } from "@odoo/hoot"; import { waitFor } from "@odoo/hoot-dom"; import { defineMailModels } from "@mail/../tests/mail_test_helpers"; import { defineActions, defineMenus, defineModels, fields, MockServer, models, mountWebClient, serverState, } from "@web/../tests/web_test_helpers"; defineActions([ { id: 667, xml_id: "action_1", name: "Partners Action 1", res_model: "partner", views: [[false, "kanban"]], }, { id: 668, xml_id: "action_2", name: "Partners Action 2", res_model: "partner", views: [[false, "list"]], }, ]); defineMenus([ { id: 1, name: "App1", appID: 1, actionID: 667, }, { id: 2, name: "App2", appID: 2, actionID: 668, }, ]); class Partner extends models.Model { name = fields.Char(); foo = fields.Char(); _records = [{ id: 1, name: "dummy record", foo: "yop" }]; _views = { kanban: ` `, list: ` `, }; } defineModels([Partner]); defineMailModels(); test.tags("desktop"); test("Opening a view with an agent updates the menu", async () => { await mountWebClient(); expect(".o_menu_brand").toHaveText("App1"); MockServer.env["bus.bus"]._sendone(serverState.partnerId, "AI_OPEN_MENU_LIST", { menuID: 2 }); await waitFor(".o_list_view"); expect(".o_menu_brand").toHaveText("App2"); });