/** @odoo-module **/ import { getFixture } from "@web/../tests/helpers/utils"; import { makeView, setupViewRegistries } from "@web/../tests/views/helpers"; let serverData; let target; QUnit.module("Board", (hooks) => { hooks.beforeEach(async () => { target = getFixture(); serverData = { models: { board: { fields: {}, records: [], }, partner: { fields: { foo: { string: "Foo", type: "char", default: "My little Foo Value", searchable: true, }, }, records: [ { id: 1, foo: "yop", }, ], }, }, views: { "partner,100000001,form": "
", "partner,100000002,search": "", }, }; setupViewRegistries(); }); QUnit.module("BoardView"); QUnit.test("can't switch views in the dashboard", async (assert) => { serverData.views["partner,4,list"] = ''; await makeView({ serverData, type: "form", resModel: "board", arch: ` `, mockRPC(route, args) { if (route === "/web/action/load") { return Promise.resolve({ res_model: "partner", views: [[4, "list"]], }); } }, }); assert.containsNone(target, ".o-dashboard-header", "Couldn't allow user to Change layout"); assert.containsOnce(target, ".o-dashboard-layout-1", "The display layout is force to 1"); assert.isNotVisible( target.querySelector(".o-dashboard-action .o_control_panel"), "views in the dashboard do not have a control panel" ); assert.containsNone( target, ".o-dashboard-action-header .fa-close", "Should not have a close action button" ); }); QUnit.test("Correctly soft switch to '1' layout on small screen", async function (assert) { serverData.views["partner,4,list"] = ''; await makeView({ serverData, type: "form", resModel: "board", arch: `
`, mockRPC(route, args) { if (route === "/web/action/load") { return Promise.resolve({ res_model: "partner", views: [[4, "list"]], }); } }, }); assert.containsOnce(target, ".o-dashboard-layout-1", "The display layout is force to 1"); assert.containsOnce( target, ".o-dashboard-column", "The display layout is force to 1 column" ); assert.containsN( target, ".o-dashboard-action", 2, "The display should contains the 2 actions" ); }); });