From 50c8ade99e5123f6251c83de7f002a49b9ce990d Mon Sep 17 00:00:00 2001
From: Carlos Lopez <carlos.lopez@tecnativa.com>
Date: Mon, 27 Jan 2025 08:11:07 -0500
Subject: [PATCH] [FIX] web_responsive: Make showAppsMenuItem work again

In Odoo 17, the Class TourStepUtils was removed, and stepUtils is now an object instead of a class. When this module is installed, the tours stop working and throw the error:
Uncaught Error: Dependencies should be defined by an array: function (require) {.

This commit adapts the code to align with these changes, ensuring that tours work correctly.
---
 web_responsive/__manifest__.py            |  2 +-
 web_responsive/static/tests/test_patch.js | 36 +++++++++++++----------
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/web_responsive/__manifest__.py b/web_responsive/__manifest__.py
index 2c772995a..3c2c9bae4 100644
--- a/web_responsive/__manifest__.py
+++ b/web_responsive/__manifest__.py
@@ -16,7 +16,7 @@
     "Odoo Community Association (OCA)",
     "license": "LGPL-3",
     "installable": True,
-    "depends": ["web", "mail"],
+    "depends": ["web_tour", "mail"],
     "development_status": "Production/Stable",
     "maintainers": ["Tardo", "SplashS"],
     "excludes": ["web_enterprise"],
diff --git a/web_responsive/static/tests/test_patch.js b/web_responsive/static/tests/test_patch.js
index 46319cf7d..6168a96e4 100644
--- a/web_responsive/static/tests/test_patch.js
+++ b/web_responsive/static/tests/test_patch.js
@@ -1,19 +1,25 @@
 /* Copyright 2021 ITerra - Sergey Shebanin
+ * Copyright 2025 Carlos Lopez - Tecnativa
  * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
-odoo.define("web_responsive.test_patch", function (require) {
-    "use strict";
+odoo.define(
+    "web_responsive.test_patch",
+    ["@web_tour/tour_service/tour_utils", "@web/core/utils/patch"],
+    function (require) {
+        "use strict";
 
-    const utils = require("web_tour.TourStepUtils");
+        const {stepUtils} = require("@web_tour/tour_service/tour_utils");
+        const {patch} = require("@web/core/utils/patch");
 
-    /* Make base odoo JS tests working */
-    utils.include({
-        showAppsMenuItem() {
-            return {
-                edition: "community",
-                trigger: ".o_navbar_apps_menu",
-                auto: true,
-                position: "bottom",
-            };
-        },
-    });
-});
+        patch(stepUtils, {
+            /* Make base odoo JS tests working */
+            showAppsMenuItem() {
+                return {
+                    edition: "community",
+                    trigger: "button.o_grid_apps_menu__button",
+                    auto: true,
+                    position: "bottom",
+                };
+            },
+        });
+    }
+);