diff options
| author | Julien Mougenot <jum@odoo.com> | 2020-03-11 09:38:27 +0000 |
|---|---|---|
| committer | Julien Mougenot <jum@odoo.com> | 2020-03-13 11:39:53 +0000 |
| commit | 0a129284e4856b6485c48a194fd86c3ab5c736e7 (patch) | |
| tree | dc0adb0c9528605019af5c915ad2c877f9aa1c57 /addons/web/static/tests/helpers/test_utils_mock.js | |
| parent | 72f1633532a586e1ccee4d2a961d745553b9d8b8 (diff) | |
[IMP] web,*: Enhance test helpers
1. Test utils helpers adapted to properly instantiate the new Owl control panel
2. New file 'test_utils_control_panel' to create a control panel and use helpers
3. New helper: createComponent (creates a generic component, see jsdoc)
4. Use of the new helpers in the current tests (more in sibling commits)
5. Helper 'addMockEnvironment' is now asynchronous
6. Owl config mode set to 'dev' in test suite (props validation)
Part of task 2196029
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Diffstat (limited to 'addons/web/static/tests/helpers/test_utils_mock.js')
| -rw-r--r-- | addons/web/static/tests/helpers/test_utils_mock.js | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/addons/web/static/tests/helpers/test_utils_mock.js b/addons/web/static/tests/helpers/test_utils_mock.js index bb2d1ef24a5..45b5dd6abcf 100644 --- a/addons/web/static/tests/helpers/test_utils_mock.js +++ b/addons/web/static/tests/helpers/test_utils_mock.js @@ -125,11 +125,11 @@ function removeSrcAttribute(el, widget) { * @param {boolean} [throttle=false] set to true to keep the throttling, which * is completely removed by default. * - * @returns {MockServer} the instance of the mock server, created by this + * @returns {Promise<MockServer>} the instance of the mock server, created by this * function. It is necessary for createView so that method can call some * other methods on it. */ -function addMockEnvironment(widget, params) { +async function addMockEnvironment(widget, params) { var Server = MockServer; params.services = params.services || {}; if (params.mockRPC) { @@ -287,6 +287,9 @@ function addMockEnvironment(widget, params) { views = _.mapObject(views, function (viewParams) { return fieldsViewGet(mockServer, viewParams); }); + if ('search' in views && params.favoriteFilters) { + views.search.favoriteFilters = params.favoriteFilters; + } event.data.on_success(views); }); }); @@ -312,6 +315,7 @@ function addMockEnvironment(widget, params) { // Deploy services var done = false; var servicesToDeploy = _.clone(params.services); + const servicePromises = []; if (!servicesToDeploy.ajax) { services.ajax = null; // use mocked ajax from mocked server } @@ -329,8 +333,7 @@ function addMockEnvironment(widget, params) { intercept(service, "get_session", function (event) { event.data.callback(session); }); - - service.start(); + servicePromises.push(service.start()); } else { var serviceNames = _.keys(servicesToDeploy); if (serviceNames.length) { @@ -340,6 +343,8 @@ function addMockEnvironment(widget, params) { } } + await Promise.all(servicePromises); + return mockServer; } @@ -368,21 +373,28 @@ function fieldsViewGet(server, params) { * @param {Object} [params.archs] this archs given to the mock server * @param {Object} [params.data] the business data given to the mock server * @param {boolean} [params.debug] + * @param {Object} [params.env] * @param {function} [params.mockRPC] + * @param {function} [params.server] an already instantiated server to avoid + * creating another one. * @returns {Object} */ -function getMockedOwlEnv(params) { - params = params || {}; - let Server = MockServer; - if (params.mockRPC) { - Server = MockServer.extend({ _performRpc: params.mockRPC }); +function getMockedOwlEnv(params = {}) { + let server; + if (params.server) { + server = params.server; + } else { + let Server = MockServer; + if (params.mockRPC) { + Server = MockServer.extend({ _performRpc: params.mockRPC }); + } + server = new Server(params.data, { + actions: params.actions, + archs: params.archs, + debug: params.debug, + }); } - const server = new Server(params.data, { - actions: params.actions, - archs: params.archs, - debug: params.debug, - }); - const env = { + const env = Object.assign({ dataManager: { load_action: (actionID, context) => { return server.performRpc('/web/action/load', { @@ -416,7 +428,7 @@ function getMockedOwlEnv(params) { }, }, session: params.session || {}, - }; + }, params.env); return makeTestEnvironment(env, server.performRpc.bind(server)); } |
