From b27ec4067a0db9519bad1ea6055b4baea18da18e Mon Sep 17 00:00:00 2001 From: Jorge Pinna Puissant Date: Mon, 19 Jul 2021 09:12:41 +0000 Subject: [PATCH] [IMP] web: mock routes/methods defined outside web Add a registry on the mockServer to allow mocking routes/methods defined outside web Co-authored-by: Samuel Degueldre --- addons/web/static/tests/helpers/mock_server.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js index 148ecfdea87..5148ccb94a7 100644 --- a/addons/web/static/tests/helpers/mock_server.js +++ b/addons/web/static/tests/helpers/mock_server.js @@ -374,6 +374,17 @@ export class MockServer { } _performRPC(route, args) { + // Check if there is an handler in the mockRegistry: either specific for this model + // (with key 'model/method'), or global (with key 'method') + // This allows to mock routes/methods defined outside web. + const methodName = args.method || route; + const mockFunction = + registry.category("mock_server").get(`${args.model}/${methodName}`, null) || + registry.category("mock_server").get(methodName, null); + if (mockFunction) { + return mockFunction.call(this, route, args); + } + switch (route) { case "/web/webclient/load_menus": return Promise.resolve(this.mockLoadMenus());