diff --git a/addons/board/static/src/legacy/js/add_to_board_menu.js b/addons/board/static/src/legacy/js/add_to_board_menu.js
index 99d057d9f3d..0c6deb4d18b 100644
--- a/addons/board/static/src/legacy/js/add_to_board_menu.js
+++ b/addons/board/static/src/legacy/js/add_to_board_menu.js
@@ -118,7 +118,7 @@ odoo.define('board.AddToBoardMenu', function (require) {
switch (ev.key) {
case 'Enter':
ev.preventDefault();
- this._addToBoard();
+ this.addToBoard();
break;
case 'Escape':
// Gives the focus back to the component.
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 8b05c697b55..55dbe3fee89 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -24,6 +24,7 @@ odoo.define("board.dashboard_tests", function (require) {
toggleComparisonMenu,
toggleFavoriteMenu,
} = require("@web/../tests/search/helpers");
+ const { mouseEnter, triggerEvent } = require("@web/../tests/helpers/utils");
const LegacyFavoriteMenu = require("web.FavoriteMenu");
const LegacyAddToBoard = require("board.AddToBoardMenu");
const { AddToBoard } = require("@board/add_to_board/add_to_board");
@@ -1201,8 +1202,7 @@ odoo.define("board.dashboard_tests", function (require) {
form.destroy();
});
- // TODO: The button "Add to my dashboard" is not yet developped on the new control panel search view
- QUnit.skip(
+ QUnit.test(
"correctly save the time ranges of a reporting view in comparison mode",
async function (assert) {
assert.expect(1);
@@ -1241,6 +1241,8 @@ odoo.define("board.dashboard_tests", function (require) {
registry.category("services").add("user", makeFakeUserService());
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() }); // makes mouseEnter work
+
const webClient = await createWebClient({ serverData, mockRPC });
await doAction(webClient, {
@@ -1262,14 +1264,52 @@ odoo.define("board.dashboard_tests", function (require) {
// add the view to the dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click($(".o_add_to_board button.dropdown-toggle"));
- await testUtils.fields.editInput($(".o_add_to_board input"), "a name");
+ await mouseEnter(webClient.el.querySelector(".o_add_to_board .dropdown-toggle"));
+ const input = webClient.el.querySelector(".o_add_to_board .dropdown-menu input");
+ await testUtils.fields.editInput(input, "Pipeline");
await testUtils.dom.click($(".o_add_to_board div button"));
unpatchDate();
}
);
+ QUnit.test("Add a view to dashboard (key nav)", async function (assert) {
+ assert.expect(2);
+
+ serverData.views = {
+ "partner,false,pivot": '',
+ "partner,false,search": '',
+ };
+
+ registry.category("services").add("user", makeFakeUserService());
+
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() }); // makes mouseEnter work
+
+ const mockRPC = (route) => {
+ if (route === "/board/add_to_dashboard") {
+ assert.step("add to board")
+ return Promise.resolve(true);
+ }
+ };
+
+ const webClient = await createWebClient({ serverData, mockRPC });
+
+ await doAction(webClient, {
+ id: 1,
+ res_model: "partner",
+ type: "ir.actions.act_window",
+ views: [[false, "pivot"]],
+ });
+
+ await toggleFavoriteMenu(webClient.el);
+ await mouseEnter(webClient.el.querySelector(".o_add_to_board .dropdown-toggle"));
+ const input = webClient.el.querySelector(".o_add_to_board .dropdown-menu input");
+ await testUtils.fields.editInput(input, "Pipeline");
+ await triggerEvent(input, null, "keydown", { key: "Enter" });
+
+ assert.verifySteps(["add to board"]);
+ });
+
QUnit.test(
"correctly display the time range descriptions of a reporting view in comparison mode",
async function (assert) {