summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/services/crash_manager_tests.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web/static/tests/services/crash_manager_tests.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (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.js62
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();
+ });
+});
+});