diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/web/static/tests/services/crash_manager_tests.js | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/web/static/tests/services/crash_manager_tests.js')
| -rw-r--r-- | addons/web/static/tests/services/crash_manager_tests.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/addons/web/static/tests/services/crash_manager_tests.js b/addons/web/static/tests/services/crash_manager_tests.js new file mode 100644 index 00000000..edbc74f2 --- /dev/null +++ b/addons/web/static/tests/services/crash_manager_tests.js @@ -0,0 +1,62 @@ +odoo.define('web.crash_manager_tests', function (require) { + "use strict"; + const CrashManager = require('web.CrashManager').CrashManager; + const Bus = require('web.Bus'); + const testUtils = require('web.test_utils'); + const core = require('web.core'); + const createActionManager = testUtils.createActionManager; + +QUnit.module('Services', {}, function() { + + QUnit.module('CrashManager'); + + QUnit.test("Execute an action and close the RedirectWarning when clicking on the primary button", async function (assert) { + assert.expect(4); + + var dummy_action_name = "crash_manager_tests_dummy_action"; + var dummy_action = function() { + assert.step('do_action'); + }; + core.action_registry.add(dummy_action_name, dummy_action); + + // What we want to test is a do-action triggered by the crashManagerService + // the intercept feature of testUtilsMock is not fit for this, because it is too low in the hierarchy + const bus = new Bus(); + bus.on('do-action', null, payload => { + const { action, options } = payload; + actionManager.doAction(action, options); + }); + + var actionManager = await createActionManager({ + actions: [dummy_action], + services: { + crash_manager: CrashManager, + }, + bus + }); + actionManager.call('crash_manager', 'rpc_error', { + code: 200, + data: { + name: "odoo.exceptions.RedirectWarning", + arguments: [ + "crash_manager_tests_warning_modal_text", + dummy_action_name, + "crash_manager_tests_button_text", + null, + ] + } + }); + await testUtils.nextTick(); + + var modal_selector = 'div.modal:contains("crash_manager_tests_warning_modal_text")'; + assert.containsOnce($, modal_selector, "Warning Modal should be opened"); + + await testUtils.dom.click($(modal_selector).find('button.btn-primary')); + + assert.containsNone($, modal_selector, "Warning Modal should be closed"); + assert.verifySteps(['do_action'], "Warning Modal Primary Button Action should be executed"); + + actionManager.destroy(); + }); +}); +}); |
