summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
Diffstat (limited to 'addons')
-rw-r--r--addons/bus/static/tests/bus_tests.js12
-rw-r--r--addons/calendar/static/tests/systray_activity_menu_tests.js2
-rw-r--r--addons/hr_attendance/static/tests/hr_attendance_tests.js6
-rw-r--r--addons/im_livechat/static/tests/website_livechat_window_tests.js4
-rw-r--r--addons/mail/static/tests/document_thread_window_tests.js66
-rw-r--r--addons/mail/static/tests/document_viewer_tests.js4
-rw-r--r--addons/mail/static/tests/mail_status_manager_tests.js10
-rw-r--r--addons/mail/static/tests/models/cc_throttle_function_tests.js8
-rw-r--r--addons/mail/static/tests/systray/systray_activity_menu_tests.js6
-rw-r--r--addons/mail/static/tests/thread_window/basic_thread_window_tests.js30
-rw-r--r--addons/mail/static/tests/thread_window/blank_thread_window_tests.js14
-rw-r--r--addons/mail/static/tests/thread_window/hidden_thread_window_tests.js10
-rw-r--r--addons/mail/static/tests/thread_window/moderation_thread_window_tests.js6
-rw-r--r--addons/mail/static/tests/thread_window/typing_thread_window_tests.js6
-rw-r--r--addons/mail/static/tests/tools/debug_manager_tests.js2
-rw-r--r--addons/note/static/tests/systray_activity_menu_tests.js2
-rw-r--r--addons/stock/static/tests/stock_traceability_report_backend_tests.js2
-rw-r--r--addons/web/static/tests/chrome/keyboard_navigation_mixin_tests.js4
-rw-r--r--addons/web/static/tests/chrome/menu_tests.js4
-rw-r--r--addons/web/static/tests/chrome/systray_tests.js3
-rw-r--r--addons/web/static/tests/chrome/user_menu_tests.js2
-rw-r--r--addons/web/static/tests/control_panel/custom_filter_item_tests.js31
-rw-r--r--addons/web/static/tests/core/dialog_tests.js12
-rw-r--r--addons/web/static/tests/core/widget_tests.js2
-rw-r--r--addons/web/static/tests/fields/relational_fields/field_many2one_tests.js4
-rw-r--r--addons/web/static/tests/tools/debug_manager_tests.js6
-rw-r--r--addons/web/static/tests/views/basic_model_tests.js128
-rw-r--r--addons/web/static/tests/views/calendar_tests.js17
-rw-r--r--addons/web/static/tests/views/form_tests.js17
-rw-r--r--addons/web/static/tests/views/kanban_model_tests.js10
-rw-r--r--addons/web/static/tests/views/kanban_tests.js17
-rw-r--r--addons/web/static/tests/views/list_tests.js17
-rw-r--r--addons/web/static/tests/widgets/company_switcher_tests.js2
-rw-r--r--addons/web/static/tests/widgets/domain_selector_tests.js10
-rw-r--r--addons/web/static/tests/widgets/model_field_selector_tests.js14
-rw-r--r--addons/web_editor/static/tests/test_utils.js4
-rw-r--r--addons/web_tour/static/tests/tour_manager_tests.js2
37 files changed, 225 insertions, 271 deletions
diff --git a/addons/bus/static/tests/bus_tests.js b/addons/bus/static/tests/bus_tests.js
index 551a145bda9..b13694a7afb 100644
--- a/addons/bus/static/tests/bus_tests.js
+++ b/addons/bus/static/tests/bus_tests.js
@@ -27,7 +27,7 @@ QUnit.module('Bus', {
var pollPromise = testUtils.makeTestPromise();
var parent = new Widget();
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
data: {},
services: {
bus_service: BusService,
@@ -101,7 +101,7 @@ QUnit.module('Bus', {
var pollPromise = testUtils.makeTestPromise();
var parent = new Widget();
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
data: {},
services: {
bus_service: BusService,
@@ -142,7 +142,7 @@ QUnit.module('Bus', {
var pollPromiseMaster = testUtils.makeTestPromise();
var parentMaster = new Widget();
- testUtils.mock.addMockEnvironment(parentMaster, {
+ await testUtils.mock.addMockEnvironment(parentMaster, {
data: {},
services: {
bus_service: BusService,
@@ -173,7 +173,7 @@ QUnit.module('Bus', {
// slave
await testUtils.nextTick();
var parentSlave = new Widget();
- testUtils.mock.addMockEnvironment(parentSlave, {
+ await testUtils.mock.addMockEnvironment(parentSlave, {
data: {},
services: {
bus_service: BusService,
@@ -220,7 +220,7 @@ QUnit.module('Bus', {
var pollPromiseMaster = testUtils.makeTestPromise();
var parentMaster = new Widget();
- testUtils.mock.addMockEnvironment(parentMaster, {
+ await testUtils.mock.addMockEnvironment(parentMaster, {
data: {},
services: {
bus_service: BusService,
@@ -252,7 +252,7 @@ QUnit.module('Bus', {
await testUtils.nextTick();
var parentSlave = new Widget();
var pollPromiseSlave = testUtils.makeTestPromise();
- testUtils.mock.addMockEnvironment(parentSlave, {
+ await testUtils.mock.addMockEnvironment(parentSlave, {
data: {},
services: {
bus_service: BusService,
diff --git a/addons/calendar/static/tests/systray_activity_menu_tests.js b/addons/calendar/static/tests/systray_activity_menu_tests.js
index 5a25792ff34..02937bae0ed 100644
--- a/addons/calendar/static/tests/systray_activity_menu_tests.js
+++ b/addons/calendar/static/tests/systray_activity_menu_tests.js
@@ -41,7 +41,7 @@ QUnit.test('activity menu widget:today meetings', async function (assert) {
assert.expect(6);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
diff --git a/addons/hr_attendance/static/tests/hr_attendance_tests.js b/addons/hr_attendance/static/tests/hr_attendance_tests.js
index 22de18817ad..1fc06e7474e 100644
--- a/addons/hr_attendance/static/tests/hr_attendance_tests.js
+++ b/addons/hr_attendance/static/tests/hr_attendance_tests.js
@@ -59,7 +59,7 @@ QUnit.module('HR Attendance', {
var $target = $('#qunit-fixture');
var clientAction = new MyAttendances(null, {});
- testUtils.mock.addMockEnvironment(clientAction, {
+ await testUtils.mock.addMockEnvironment(clientAction, {
data: this.data,
session: {
uid: 1,
@@ -80,7 +80,7 @@ QUnit.module('HR Attendance', {
var self = this;
var rpcCount = 0;
var clientAction = new KioskMode(null, {});
- testUtils.mock.addMockEnvironment(clientAction, {
+ await testUtils.mock.addMockEnvironment(clientAction, {
data: this.data,
session: {
uid: 1,
@@ -124,7 +124,7 @@ QUnit.module('HR Attendance', {
barcode: barcode,
};
var clientAction = new GreetingMessage(null, action);
- testUtils.mock.addMockEnvironment(clientAction, {
+ await testUtils.mock.addMockEnvironment(clientAction, {
data: self.data,
session: {
uid: 1,
diff --git a/addons/im_livechat/static/tests/website_livechat_window_tests.js b/addons/im_livechat/static/tests/website_livechat_window_tests.js
index e8a296fa095..8907d790cb1 100644
--- a/addons/im_livechat/static/tests/website_livechat_window_tests.js
+++ b/addons/im_livechat/static/tests/website_livechat_window_tests.js
@@ -45,7 +45,7 @@ QUnit.test('basic rendering', async function (assert) {
livechat.setMessages(messages);
var chatWindow = new ChatWindow(parent, livechat);
- testUtils.mock.addMockEnvironment(parent, {});
+ await testUtils.mock.addMockEnvironment(parent, {});
await chatWindow.appendTo($('#qunit-fixture'));
chatWindow.render();
@@ -95,7 +95,7 @@ QUnit.test('define several livechat colors', async function (assert) {
headerBackgroundColor: 'yellow',
titleColor: 'green',
});
- testUtils.mock.addMockEnvironment(parent, {});
+ await testUtils.mock.addMockEnvironment(parent, {});
await chatWindow.appendTo($('#qunit-fixture'));
chatWindow.render();
assert.strictEqual(
diff --git a/addons/mail/static/tests/document_thread_window_tests.js b/addons/mail/static/tests/document_thread_window_tests.js
index f01ab0925f2..c4a84040433 100644
--- a/addons/mail/static/tests/document_thread_window_tests.js
+++ b/addons/mail/static/tests/document_thread_window_tests.js
@@ -1,6 +1,8 @@
odoo.define('mail.documentThreadWindowTests', function (require) {
"use strict";
+const Bus = require('web.Bus');
+const LocalStorageService = require('web.LocalStorageService');
var mailTestUtils = require('mail.testUtils');
var MessagingMenu = require('mail.systray.MessagingMenu');
@@ -128,20 +130,23 @@ QUnit.test('open a document thread in a thread window', async function (assert)
QUnit.test('expand a document thread window', async function (assert) {
assert.expect(4);
+ const bus = new Bus();
+ bus.on('do-action', null, function (payload) {
+ assert.deepEqual(payload.action, {
+ res_id: 1,
+ res_model: 'some.res.model',
+ type: 'ir.actions.act_window',
+ views: [[false, 'form']],
+ }, "should open the document in form view");
+ });
+
var messagingMenu = new MessagingMenu();
await testUtils.mock.addMockEnvironment(messagingMenu, {
services: this.services,
data: this.data,
session: this.session,
- intercepts: {
- do_action: function (ev) {
- assert.deepEqual(ev.data.action, {
- res_id: 1,
- res_model: 'some.res.model',
- type: 'ir.actions.act_window',
- views: [[false, 'form']],
- }, "should open the document in form view");
- },
+ env: {
+ bus
},
});
await messagingMenu.appendTo($('#qunit-fixture'));
@@ -177,8 +182,18 @@ QUnit.test('post messages in a document thread window', async function (assert)
res_id: 1,
};
var messagingMenu = new MessagingMenu();
+ const MockedLocalStorageService = LocalStorageService.extend({
+ setItem(key, value) {
+ if (key === 'mail.document_threads_last_message') {
+ assert.deepEqual(value.messageData, newMessage,
+ "should write sent message in local storage, to share info with other tabs");
+ }
+ },
+ });
await testUtils.mock.addMockEnvironment(messagingMenu, {
- services: this.services,
+ services: Object.assign(this.services, {
+ local_storage: MockedLocalStorageService,
+ }),
data: this.data,
session: this.session,
mockRPC: function (route, args) {
@@ -198,13 +213,7 @@ QUnit.test('post messages in a document thread window', async function (assert)
return this._super.apply(this, arguments);
},
});
- testUtils.mock.intercept(messagingMenu, 'call_service', function (ev) {
- if (ev.data.service === 'local_storage' && ev.data.method === 'setItem' &&
- ev.data.args[0] === 'mail.document_threads_last_message') {
- assert.deepEqual(ev.data.args[1].messageData, newMessage,
- "should write sent message in local storage, to share info with other tabs");
- }
- }, true);
+
await messagingMenu.appendTo($('#qunit-fixture'));
// toggle the messaging menu and open the documentThread
@@ -229,24 +238,25 @@ QUnit.test('post messages in a document thread window', async function (assert)
QUnit.test('open, fold, unfold and close a document thread window', async function (assert) {
assert.expect(20);
var messagingMenu = new MessagingMenu();
- await testUtils.mock.addMockEnvironment(messagingMenu, {
- services: this.services,
- data: this.data,
- session: this.session,
- });
- await testUtils.nextTick();
- testUtils.mock.intercept(messagingMenu, 'call_service', function (ev) {
- if (ev.data.service === 'local_storage' && ev.data.method === 'setItem') {
- const key = ev.data.args[0];
+ const MockedLocalStorageService = LocalStorageService.extend({
+ setItem(key, value) {
if (key === 'mail.document_threads_state/some.res.model_1') {
- const state = ev.data.args[1].state;
+ const state = value.state;
assert.ok(state);
assert.ok(state.name);
assert.ok(state.windowState);
assert.step(`${key}: { name: "${state.name}", windowState: '${state.windowState}' }`);
}
}
- }, true);
+ });
+ await testUtils.mock.addMockEnvironment(messagingMenu, {
+ services: Object.assign(this.services, {
+ local_storage: MockedLocalStorageService,
+ }),
+ data: this.data,
+ session: this.session,
+ });
+ await testUtils.nextTick();
await messagingMenu.appendTo($('#qunit-fixture'));
// toggle the messaging menu and open the documentThread
diff --git a/addons/mail/static/tests/document_viewer_tests.js b/addons/mail/static/tests/document_viewer_tests.js
index aa50483b48a..ca6b433d519 100644
--- a/addons/mail/static/tests/document_viewer_tests.js
+++ b/addons/mail/static/tests/document_viewer_tests.js
@@ -14,7 +14,7 @@ var Widget = require('web.Widget');
* @param {boolean} [params.debug]
* @returns {DocumentViewer}
*/
-var createViewer = function (params) {
+var createViewer = async function (params) {
var parent = new Widget();
var viewer = new DocumentViewer(parent, params.attachments, params.attachmentID);
@@ -32,7 +32,7 @@ var createViewer = function (params) {
return Promise.resolve();
}
};
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
mockRPC: function () {
if (params.mockRPC) {
var _super = this._super;
diff --git a/addons/mail/static/tests/mail_status_manager_tests.js b/addons/mail/static/tests/mail_status_manager_tests.js
index f21cefdec9e..891cf3aaa68 100644
--- a/addons/mail/static/tests/mail_status_manager_tests.js
+++ b/addons/mail/static/tests/mail_status_manager_tests.js
@@ -17,9 +17,9 @@ QUnit.module('Status manager', {
this.timeoutMock = mailTestUtils.patchMailTimeouts();
},
});
-QUnit.test('simple set im_status', function (assert) {
+QUnit.test('simple set im_status', async function (assert) {
assert.expect(1);
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
@@ -41,7 +41,7 @@ QUnit.test('simple set im_status', function (assert) {
QUnit.test('multi get_im_status', async function (assert) {
assert.expect(8);
var readCount = 0;
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
//data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -86,7 +86,7 @@ QUnit.test('multi get_im_status', async function (assert) {
QUnit.test('update loop', async function (assert) {
assert.expect(10);
var readCount = 0;
- var parent = testUtils.createParent({
+ var parent = await testUtils.createParent({
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
@@ -162,7 +162,7 @@ QUnit.test('update status', async function (assert) {
}
});
var statusWidget = new StatusWidget();
- testUtils.mock.addMockEnvironment(statusWidget, {
+ await testUtils.mock.addMockEnvironment(statusWidget, {
services: this.services,
mockRPC: function (route, args) {
if (route === '/mail/init_messaging') {
diff --git a/addons/mail/static/tests/models/cc_throttle_function_tests.js b/addons/mail/static/tests/models/cc_throttle_function_tests.js
index 5ab00ef6048..f760675b1f3 100644
--- a/addons/mail/static/tests/models/cc_throttle_function_tests.js
+++ b/addons/mail/static/tests/models/cc_throttle_function_tests.js
@@ -31,7 +31,7 @@ QUnit.module('mail', {
QUnit.module('model', {}, function () {
QUnit.module('CC Throttle Function');
-QUnit.test('cancel()', function (assert) {
+QUnit.test('cancel()', async function (assert) {
var done = assert.async();
assert.expect(3);
@@ -39,7 +39,7 @@ QUnit.test('cancel()', function (assert) {
var def = testUtils.makeTestPromise();
var step = 1;
- var widget = testUtils.createParent({
+ var widget = await testUtils.createParent({
mockRPC: function (route, args) {
if (args.method === '__rpc__') {
assert.step(args.method + args.args[0]);
@@ -87,7 +87,7 @@ QUnit.test('cancel()', function (assert) {
});
});
-QUnit.test('clear()', function (assert) {
+QUnit.test('clear()', async function (assert) {
var done = assert.async();
assert.expect(5);
@@ -96,7 +96,7 @@ QUnit.test('clear()', function (assert) {
var def2 = testUtils.makeTestPromise();
var step = 1;
- var widget = testUtils.createParent({
+ var widget = await testUtils.createParent({
mockRPC: function (route, args) {
if (args.method === '__rpc__') {
assert.step(args.method + args.args[0]);
diff --git a/addons/mail/static/tests/systray/systray_activity_menu_tests.js b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
index 1cedca2b9c1..23f3500001b 100644
--- a/addons/mail/static/tests/systray/systray_activity_menu_tests.js
+++ b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
@@ -83,7 +83,7 @@ QUnit.test('activity menu widget: menu with no records', async function (assert)
assert.expect(1);
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
@@ -102,7 +102,7 @@ QUnit.test('activity menu widget: activity menu with 3 records', async function
assert.expect(10);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
@@ -163,7 +163,7 @@ QUnit.test('activity menu widget: activity view icon', async function (assert) {
assert.expect(12);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
session: this.session,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/thread_window/basic_thread_window_tests.js b/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
index 87e3c536998..61414d2aeaa 100644
--- a/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/basic_thread_window_tests.js
@@ -56,7 +56,7 @@ QUnit.module('Basic', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -68,7 +68,7 @@ QUnit.module('Basic', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -81,7 +81,7 @@ QUnit.module('Basic', {
QUnit.test('basic rendering thread window', async function (assert) {
assert.expect(10);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -128,7 +128,7 @@ QUnit.test('basic rendering thread window', async function (assert) {
QUnit.test('close thread window using ESCAPE key', async function (assert) {
assert.expect(5);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -169,7 +169,7 @@ QUnit.test('close thread window using ESCAPE key', async function (assert) {
QUnit.test('thread window\'s input can still be focused when the UI is blocked', async function (assert) {
assert.expect(2);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -205,7 +205,7 @@ QUnit.test('thread window\'s input can still be focused when the UI is blocked',
QUnit.test('emoji popover should open correctly in thread windows', async function (assert) {
assert.expect(1);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -227,7 +227,7 @@ QUnit.test('emoji popover should open correctly in thread windows', async functi
QUnit.test('do not increase unread counter when receiving message with myself as author', async function (assert) {
assert.expect(4);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 }
@@ -274,7 +274,7 @@ QUnit.test('do not increment unread counter with focus on thread window', async
// order to set the focus on it.
assert.expect(2);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 }
@@ -322,7 +322,7 @@ QUnit.test('do not mark as read the newly open thread window from received messa
message_unread_counter: 0,
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -393,7 +393,7 @@ QUnit.test('show document link of message linked to a document', async function
channel_type: "public",
});
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -510,7 +510,7 @@ QUnit.test('do not auto-focus chat window on receiving new message from new DM',
state: 'open',
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
@@ -600,7 +600,7 @@ QUnit.test('no out-of-office status in thread window', async function (assert) {
}],
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -650,7 +650,7 @@ QUnit.test('receive 2 new DM messages in quick succession (no chat window initia
}],
};
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
mockRPC(route, args) {
if (args.method === 'channel_minimize') {
@@ -740,7 +740,7 @@ QUnit.test('non-deletable message attachments', async function (assert) {
record_name: "general",
res_id: 1,
}];
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -781,7 +781,7 @@ QUnit.test('join channel from click channel mention', async function (assert) {
channel_ids: [1],
});
- const parent = this.createParent({
+ const parent = await this.createParent({
data: this.data,
services: this.services,
session: { partner_id: 3 },
diff --git a/addons/mail/static/tests/thread_window/blank_thread_window_tests.js b/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
index 4a24a80d4c3..2d295144b62 100644
--- a/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/blank_thread_window_tests.js
@@ -32,7 +32,7 @@ QUnit.module('Blank', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -44,7 +44,7 @@ QUnit.module('Blank', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
@@ -90,7 +90,7 @@ QUnit.module('Blank', {
QUnit.test('basic rendering blank thread window', async function (assert) {
assert.expect(5);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -117,7 +117,7 @@ QUnit.test('basic rendering blank thread window', async function (assert) {
QUnit.test('close blank thread window', async function (assert) {
assert.expect(1);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -139,7 +139,7 @@ QUnit.test('fold blank thread window', async function (assert) {
// (e.g. 400px)
assert.expect(3);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -191,7 +191,7 @@ QUnit.test('open new DM chat from blank thread window', async function (assert)
records: [],
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
@@ -274,7 +274,7 @@ QUnit.test('open already detached DM chat from blank thread window', async funct
name: 'DemoUser1',
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js b/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
index 078230e276a..36da266128c 100644
--- a/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/hidden_thread_window_tests.js
@@ -31,7 +31,7 @@ QUnit.module('Hidden', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -43,7 +43,7 @@ QUnit.module('Hidden', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -86,7 +86,7 @@ QUnit.test('hidden thread windows dropdown when not enough horizontal space (ver
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -172,7 +172,7 @@ QUnit.test('hidden thread windows dropdown when not enough horizontal space (ver
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
@@ -266,7 +266,7 @@ QUnit.test('receive message from hidden thread window', async function (assert)
},
};
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
diff --git a/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js b/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
index 732a5fe7938..db2561fd048 100644
--- a/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/moderation_thread_window_tests.js
@@ -62,7 +62,7 @@ QUnit.module('Moderation', {
this.services = mailTestUtils.getMailServices();
this.ORIGINAL_THREAD_WINDOW_APPENDTO = this.services.mail_service.prototype.THREAD_WINDOW_APPENDTO;
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -74,7 +74,7 @@ QUnit.module('Moderation', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -110,7 +110,7 @@ QUnit.test('moderator: moderated channel with pending moderation message', async
res_id: 1,
}];
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
});
diff --git a/addons/mail/static/tests/thread_window/typing_thread_window_tests.js b/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
index be2bd4beec8..53960dc283d 100644
--- a/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
+++ b/addons/mail/static/tests/thread_window/typing_thread_window_tests.js
@@ -51,7 +51,7 @@ QUnit.module('Typing', {
await testUtils.nextMicrotaskTick();
};
- this.createParent = function (params) {
+ this.createParent = async function (params) {
var widget = new Widget();
// in non-debug mode, append thread windows in qunit-fixture
@@ -63,7 +63,7 @@ QUnit.module('Typing', {
self.services.mail_service.prototype.THREAD_WINDOW_APPENDTO = '#qunit-fixture';
}
- testUtils.mock.addMockEnvironment(widget, params);
+ await testUtils.mock.addMockEnvironment(widget, params);
return widget;
};
},
@@ -76,7 +76,7 @@ QUnit.module('Typing', {
QUnit.test('receive typing notification', async function (assert) {
assert.expect(4);
- var parent = this.createParent({
+ var parent = await this.createParent({
data: this.data,
services: this.services,
mockRPC: function (route, args) {
diff --git a/addons/mail/static/tests/tools/debug_manager_tests.js b/addons/mail/static/tests/tools/debug_manager_tests.js
index c21d36572b9..151b89024b6 100644
--- a/addons/mail/static/tests/tools/debug_manager_tests.js
+++ b/addons/mail/static/tests/tools/debug_manager_tests.js
@@ -10,7 +10,7 @@ QUnit.module('Mail DebugManager', {}, function () {
QUnit.test("Manage Messages", async function (assert) {
assert.expect(3);
- var debugManager = createDebugManager({
+ var debugManager = await createDebugManager({
intercepts: {
do_action: function (event) {
assert.deepEqual(event.data.action, {
diff --git a/addons/note/static/tests/systray_activity_menu_tests.js b/addons/note/static/tests/systray_activity_menu_tests.js
index 768412df2eb..85ca835e674 100644
--- a/addons/note/static/tests/systray_activity_menu_tests.js
+++ b/addons/note/static/tests/systray_activity_menu_tests.js
@@ -38,7 +38,7 @@ QUnit.test('note activity menu widget: create note from activity menu', async fu
assert.expect(15);
var self = this;
var activityMenu = new ActivityMenu();
- testUtils.mock.addMockEnvironment(activityMenu, {
+ await testUtils.mock.addMockEnvironment(activityMenu, {
services: this.services,
mockRPC: function (route, args) {
if (args.method === 'systray_get_activities') {
diff --git a/addons/stock/static/tests/stock_traceability_report_backend_tests.js b/addons/stock/static/tests/stock_traceability_report_backend_tests.js
index feba8f0f9e5..20a9d809d70 100644
--- a/addons/stock/static/tests/stock_traceability_report_backend_tests.js
+++ b/addons/stock/static/tests/stock_traceability_report_backend_tests.js
@@ -13,7 +13,7 @@ odoo.define('stock.stock_traceability_report_backend_tests', function (require)
* @returns {Promise<StockReportGeneric>}
*/
async function createStockReportAction(params) {
- const parent = testUtils.createParent(params);
+ const parent = await testUtils.createParent(params);
const report = new StockReportGeneric(parent, params.action);
const target = testUtils.prepareTarget(params.debug);
diff --git a/addons/web/static/tests/chrome/keyboard_navigation_mixin_tests.js b/addons/web/static/tests/chrome/keyboard_navigation_mixin_tests.js
index dcf1c23ce39..b0c638dd802 100644
--- a/addons/web/static/tests/chrome/keyboard_navigation_mixin_tests.js
+++ b/addons/web/static/tests/chrome/keyboard_navigation_mixin_tests.js
@@ -26,7 +26,7 @@ QUnit.module('KeyboardNavigationMixin', function () {
return this._super(...arguments);
},
});
- var parent = testUtils.createParent({});
+ var parent = await testUtils.createParent({});
var w = new KeyboardWidget(parent);
await w.appendTo($target);
@@ -67,7 +67,7 @@ QUnit.module('KeyboardNavigationMixin', function () {
return this._super(...arguments);
},
});
- var parent = testUtils.createParent({});
+ var parent = await testUtils.createParent({});
var w = new KeyboardWidget(parent);
await w.appendTo($target);
diff --git a/addons/web/static/tests/chrome/menu_tests.js b/addons/web/static/tests/chrome/menu_tests.js
index c7ce40b16c2..a50e2189906 100644
--- a/addons/web/static/tests/chrome/menu_tests.js
+++ b/addons/web/static/tests/chrome/menu_tests.js
@@ -13,7 +13,7 @@ odoo.define('web.menu_tests', function (require) {
QUnit.test('Systray on_attach_callback is called', async function (assert) {
assert.expect(4);
- const parent = testUtils.createParent({});
+ const parent = await testUtils.createParent({});
// Add some widgets to the systray
const Widget1 = Widget.extend({
@@ -22,7 +22,7 @@ odoo.define('web.menu_tests', function (require) {
const Widget2 = Widget.extend({
on_attach_callback: () => assert.step('on_attach_callback widget2')
});
- SystrayMenu.Items = [Widget1, Widget2]
+ SystrayMenu.Items = [Widget1, Widget2];
testUtils.mock.patch(SystrayMenu, {
on_attach_callback: function () {
diff --git a/addons/web/static/tests/chrome/systray_tests.js b/addons/web/static/tests/chrome/systray_tests.js
index c5238ceff04..941e275f19b 100644
--- a/addons/web/static/tests/chrome/systray_tests.js
+++ b/addons/web/static/tests/chrome/systray_tests.js
@@ -7,8 +7,7 @@ odoo.define('web.systray_tests', function (require) {
QUnit.test('Adding async components to the registry respects the sequence', async function (assert) {
assert.expect(2);
- var parent = testUtils.createParent({
- });
+ var parent = await testUtils.createParent({});
var prom = testUtils.makeTestPromise();
var synchronousFirstWidget = Widget.extend({
diff --git a/addons/web/static/tests/chrome/user_menu_tests.js b/addons/web/static/tests/chrome/user_menu_tests.js
index 73c74b0753c..752697a5228 100644
--- a/addons/web/static/tests/chrome/user_menu_tests.js
+++ b/addons/web/static/tests/chrome/user_menu_tests.js
@@ -13,7 +13,7 @@ QUnit.module('chrome', {}, function () {
var parent = new Widget();
- testUtils.mock.addMockEnvironment(parent, {});
+ await testUtils.mock.addMockEnvironment(parent, {});
var userMenu = new UserMenu(parent);
await userMenu.appendTo($('body'));
diff --git a/addons/web/static/tests/control_panel/custom_filter_item_tests.js b/addons/web/static/tests/control_panel/custom_filter_item_tests.js
index 52a5aa738a6..7602f56aae0 100644
--- a/addons/web/static/tests/control_panel/custom_filter_item_tests.js
+++ b/addons/web/static/tests/control_panel/custom_filter_item_tests.js
@@ -6,21 +6,10 @@ odoo.define('web.filter_menu_generator_tests', function (require) {
const { Model } = require('web.model');
const pyUtils = require('web.py_utils');
const testUtils = require('web.test_utils');
- const session = require('web.session');
const cpHelpers = testUtils.controlPanel;
const { createComponent } = testUtils;
- function patchSession(newSession) {
- // We have to patch the "legacy" session because field_utils is using it.
- // TODO: remove it when the field_utils are re-written.
- const initialSession = session;
- Object.assign(session, newSession);
- return function () {
- Object.assign(session, initialSession);
- };
- }
-
QUnit.module('Components', {
beforeEach: function () {
this.fields = {
@@ -203,11 +192,6 @@ odoo.define('web.filter_menu_generator_tests', function (require) {
QUnit.test('custom filter datetime with equal operator', async function (assert) {
assert.expect(4);
- patchSession({
- getTZOffset: function () {
- return -240;
- },
- });
class MockedControlPanelModel extends Model {
createNewFilters(preFilters) {
const preFilter = preFilters[0];
@@ -224,6 +208,11 @@ odoo.define('web.filter_menu_generator_tests', function (require) {
props: {
fields: this.fields,
},
+ session: {
+ getTZOffset() {
+ return -240;
+ },
+ },
env: { controlPanelModel },
});
@@ -243,11 +232,6 @@ odoo.define('web.filter_menu_generator_tests', function (require) {
QUnit.test('custom filter datetime between operator', async function (assert) {
assert.expect(4);
- patchSession({
- getTZOffset: function () {
- return -240;
- },
- });
class MockedControlPanelModel extends Model {
createNewFilters(preFilters) {
const preFilter = preFilters[0];
@@ -265,6 +249,11 @@ odoo.define('web.filter_menu_generator_tests', function (require) {
props: {
fields: this.fields,
},
+ session: {
+ getTZOffset() {
+ return -240;
+ },
+ },
env: { controlPanelModel },
});
diff --git a/addons/web/static/tests/core/dialog_tests.js b/addons/web/static/tests/core/dialog_tests.js
index ea3a672322f..c51239a01bb 100644
--- a/addons/web/static/tests/core/dialog_tests.js
+++ b/addons/web/static/tests/core/dialog_tests.js
@@ -7,10 +7,10 @@ var Widget = require('web.Widget');
var ESCAPE_KEY = $.Event("keyup", { which: 27 });
-function createEmptyParent(debug) {
+async function createEmptyParent(debug) {
var widget = new Widget();
- testUtils.mock.addMockEnvironment(widget, {
+ await testUtils.mock.addMockEnvironment(widget, {
debug: debug || false,
});
return widget;
@@ -24,7 +24,7 @@ QUnit.module('core', {}, function () {
assert.expect(3);
var testPromise = testUtils.makeTestPromiseWithAssert(assert, 'custom callback');
- var parent = createEmptyParent();
+ var parent = await createEmptyParent();
new Dialog(parent, {
buttons: [
{
@@ -54,7 +54,7 @@ QUnit.module('core', {}, function () {
assert.expect(3);
var testPromise = testUtils.makeTestPromiseWithAssert(assert, 'custom callback');
- var parent = createEmptyParent();
+ var parent = await createEmptyParent();
new Dialog(parent, {
buttons: [
{
@@ -84,7 +84,7 @@ QUnit.module('core', {}, function () {
assert.expect(3);
var testPromise = testUtils.makeTestPromiseWithAssert(assert, 'confirm callback');
- var parent = createEmptyParent();
+ var parent = await createEmptyParent();
var options = {
confirm_callback: testPromise.reject,
cancel_callback: testPromise.resolve,
@@ -107,7 +107,7 @@ QUnit.module('core', {}, function () {
assert.expect(3);
var testPromise = testUtils.makeTestPromiseWithAssert(assert, 'alert callback');
- var parent = createEmptyParent();
+ var parent = await createEmptyParent();
var options = {
confirm_callback: testPromise.resolve,
};
diff --git a/addons/web/static/tests/core/widget_tests.js b/addons/web/static/tests/core/widget_tests.js
index f8283f91c35..1c1c59f1d52 100644
--- a/addons/web/static/tests/core/widget_tests.js
+++ b/addons/web/static/tests/core/widget_tests.js
@@ -402,7 +402,7 @@ QUnit.module('core', {}, function () {
var def;
var parent = new Widget();
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
session: {
rpc: function () {
def = testUtils.makeTestPromise();
diff --git a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
index 856019092fe..98ff6a47925 100644
--- a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
+++ b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
@@ -1060,7 +1060,7 @@ QUnit.module('fields', {}, function () {
var fixture = $('#qunit-fixture');
var self = this;
- var model = testUtils.createModel({
+ var model = await testUtils.createModel({
Model: BasicModel,
data: this.data,
});
@@ -1083,7 +1083,7 @@ QUnit.module('fields', {}, function () {
});
var parent = new StandaloneWidget(model);
model.setParent(parent);
- testUtils.mock.addMockEnvironment(parent, {
+ await testUtils.mock.addMockEnvironment(parent, {
data: self.data,
mockRPC: function (route, args) {
assert.step(args.method);
diff --git a/addons/web/static/tests/tools/debug_manager_tests.js b/addons/web/static/tests/tools/debug_manager_tests.js
index 0f850835c66..77970a1922e 100644
--- a/addons/web/static/tests/tools/debug_manager_tests.js
+++ b/addons/web/static/tests/tools/debug_manager_tests.js
@@ -11,7 +11,7 @@ QUnit.module('DebugManager', {}, function () {
QUnit.test("list: edit view menu item", async function (assert) {
assert.expect(3);
- var debugManager = createDebugManager();
+ var debugManager = await createDebugManager();
await debugManager.appendTo($('#qunit-fixture'));
@@ -43,7 +43,7 @@ QUnit.module('DebugManager', {}, function () {
QUnit.test("form: Manage Attachments option", async function (assert) {
assert.expect(3);
- var debugManager = createDebugManager({
+ var debugManager = await createDebugManager({
intercepts: {
do_action: function (event) {
assert.deepEqual(event.data.action, {
@@ -126,7 +126,7 @@ QUnit.module('DebugManager', {}, function () {
});
// Now the real tested component
- var debugManager = createDebugManager({
+ var debugManager = await createDebugManager({
data: data,
mockRPC: function (route, args) {
if (route == "/web/dataset/call_kw/ir.default/set") {
diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js
index 326c8550bb5..3d28a32cf2e 100644
--- a/addons/web/static/tests/views/basic_model_tests.js
+++ b/addons/web/static/tests/views/basic_model_tests.js
@@ -136,7 +136,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo'];
this.params.context = { active_field: 2 };
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -171,7 +171,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = 99;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -190,7 +190,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo', 'qux'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -211,7 +211,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.records[1].qux = 1;
this.params.fieldNames = ['qux'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -238,7 +238,7 @@ odoo.define('web.basic_model_tests', function (require) {
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -277,7 +277,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo', 'bar'];
this.params.context = { hello: 'world' };
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -317,7 +317,7 @@ odoo.define('web.basic_model_tests', function (require) {
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -354,7 +354,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -381,7 +381,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.records[1].product_ids = [37];
this.params.fieldNames = ['product_ids'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -461,7 +461,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['product_id'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -495,7 +495,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo', 'product_id'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -524,7 +524,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo', 'product_id'];
this.params.res_id = 1;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -553,7 +553,7 @@ odoo.define('web.basic_model_tests', function (require) {
},
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -583,7 +583,7 @@ odoo.define('web.basic_model_tests', function (require) {
},
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -615,7 +615,7 @@ odoo.define('web.basic_model_tests', function (require) {
},
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -641,7 +641,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.context = { active_field: 2 };
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -671,7 +671,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.groupedBy = [];
this.params.res_id = undefined;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -698,7 +698,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.type = 'record';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -732,7 +732,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.type = 'record';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -784,7 +784,7 @@ odoo.define('web.basic_model_tests', function (require) {
};
this.params.viewType = 'form';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -822,7 +822,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.type = 'record';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -848,7 +848,7 @@ odoo.define('web.basic_model_tests', function (require) {
fields.product_id.default = 37;
fields.other_product_id.default = 41;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -880,7 +880,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -902,7 +902,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['category'];
this.params.res_id = 1;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -927,7 +927,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['foo'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -951,7 +951,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['product_id'];
var self = this;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -981,7 +981,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
var filterEnabled = false;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1046,7 +1046,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.groupedBy = ['date:month'];
this.params.res_id = undefined;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1072,7 +1072,7 @@ odoo.define('web.basic_model_tests', function (require) {
};
this.data.partner.records[0].selection = 'a';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1108,7 +1108,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.context = { active_field: 2 };
var id;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1146,7 +1146,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['product_ids'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1183,7 +1183,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('create commands on a one2many', async function (assert) {
assert.expect(3);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1260,7 +1260,7 @@ odoo.define('web.basic_model_tests', function (require) {
type: 'record',
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1297,7 +1297,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('dates are properly loaded and parsed (record)', async function (assert) {
assert.expect(2);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1328,7 +1328,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('dates are properly loaded and parsed (list)', async function (assert) {
assert.expect(2);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1355,7 +1355,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('dates are properly loaded and parsed (default_get)', async function (assert) {
assert.expect(1);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1379,7 +1379,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.fields.category.default = [12, 14];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1412,7 +1412,7 @@ odoo.define('web.basic_model_tests', function (require) {
};
this.data.partner.fields.category.type = 'many2one';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1464,7 +1464,7 @@ odoo.define('web.basic_model_tests', function (require) {
string: "O2M", type: 'one2many', relation: 'partner', default: [[6, 0, [1]]],
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1510,7 +1510,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.fields.product_id.context = "{'hello': 'world', 'test': foo}";
this.data.partner.fields.product_id.domain = "[['hello', 'like', 'world'], ['test', 'like', foo]]";
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1538,7 +1538,7 @@ odoo.define('web.basic_model_tests', function (require) {
model.destroy();
// Try again with xml override of field domain and context
- model = createModel({
+ model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1585,7 +1585,7 @@ odoo.define('web.basic_model_tests', function (require) {
}
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1650,7 +1650,7 @@ odoo.define('web.basic_model_tests', function (require) {
}
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1699,7 +1699,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('default_get with one2many values', async function (assert) {
assert.expect(1);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1738,7 +1738,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(3);
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1773,7 +1773,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(5);
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1812,7 +1812,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(5);
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1857,7 +1857,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(4);
var rpcCount = 0;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1888,7 +1888,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(2);
let rpcCount = 0;
- const model = createModel({
+ const model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1916,7 +1916,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.fields.product_id.context = "{'id': id, 'active_id': active_id, 'active_ids': active_ids, 'active_model': active_model}";
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -1949,7 +1949,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = ['category'];
this.params.res_id = 1;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -1991,7 +1991,7 @@ odoo.define('web.basic_model_tests', function (require) {
viewType: 'form',
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2011,7 +2011,7 @@ odoo.define('web.basic_model_tests', function (require) {
assert.expect(2);
this.data.partner.fields.foo.default = 'default';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2042,7 +2042,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.fieldNames = Object.keys(this.data.partner.fields);
this.params.res_id = 1;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2095,7 +2095,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.viewType = 'form';
this.params.res_id = 1;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2133,7 +2133,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.groupedBy = [];
this.params.res_id = undefined;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -2164,7 +2164,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.type = 'record';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route, args) {
@@ -2196,7 +2196,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.type = 'record';
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2215,7 +2215,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = undefined;
this.params.orderedBy = [{ name: 'display_name', asc: true }];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
mockRPC: function (route) {
@@ -2269,7 +2269,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.params.res_id = 1;
this.params.fieldNames = ['foobool', 'foobool2'];
this.params.fields = this.data.partner.fields;
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2291,7 +2291,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.records[1].product_ids = [37, 38];
this.params.fieldNames = ['product_ids'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2341,7 +2341,7 @@ odoo.define('web.basic_model_tests', function (require) {
this.data.partner.records[1].product_ids = [37, 38];
this.params.fieldNames = ['product_ids'];
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2401,7 +2401,7 @@ odoo.define('web.basic_model_tests', function (require) {
},
};
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
@@ -2448,7 +2448,7 @@ odoo.define('web.basic_model_tests', function (require) {
QUnit.test('identify correct active field', async function(assert) {
assert.expect(4);
- var model = createModel({
+ var model = await createModel({
Model: BasicModel,
data: this.data,
});
diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js
index 7b69e8ce167..ba8c1f35dfd 100644
--- a/addons/web/static/tests/views/calendar_tests.js
+++ b/addons/web/static/tests/views/calendar_tests.js
@@ -2541,7 +2541,7 @@ QUnit.module('Views', {
});
QUnit.test('check if the view destroys all widgets and instances', async function (assert) {
- assert.expect(1);
+ assert.expect(2);
var instanceNumber = 0;
testUtils.mock.patch(mixins.ParentedMixin, {
@@ -2579,21 +2579,10 @@ QUnit.module('Views', {
};
var calendar = await createCalendarView(params);
- calendar.destroy();
-
- var initialInstanceNumber = instanceNumber;
- instanceNumber = 0;
-
- calendar = await createCalendarView(params);
-
- // call destroy function of controller to ensure that it correctly destroys everything
- calendar.__destroy();
-
- // + 1 (parent)
- assert.strictEqual(instanceNumber, initialInstanceNumber + 1,
- "every widget must be destroyed exept the parent");
+ assert.ok(instanceNumber > 0);
calendar.destroy();
+ assert.strictEqual(instanceNumber, 0);
testUtils.mock.unpatch(mixins.ParentedMixin);
});
diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js
index 33bc3de7347..56fba6515bc 100644
--- a/addons/web/static/tests/views/form_tests.js
+++ b/addons/web/static/tests/views/form_tests.js
@@ -7706,7 +7706,7 @@ QUnit.module('Views', {
});
QUnit.test('check if the view destroys all widgets and instances', async function (assert) {
- assert.expect(1);
+ assert.expect(2);
var instanceNumber = 0;
await testUtils.mock.patch(mixins.ParentedMixin, {
@@ -7766,21 +7766,10 @@ QUnit.module('Views', {
};
var form = await createView(params);
- form.destroy();
-
- var initialInstanceNumber = instanceNumber;
- instanceNumber = 0;
-
- form = await createView(params);
-
- // call destroy function of controller to ensure that it correctly destroys everything
- form.__destroy();
-
- // + 4 (parent)
- assert.strictEqual(instanceNumber, initialInstanceNumber + 1,
- "every widget must be destroyed exept the parent");
+ assert.ok(instanceNumber > 0);
form.destroy();
+ assert.strictEqual(instanceNumber, 0);
await testUtils.mock.unpatch(mixins.ParentedMixin);
});
diff --git a/addons/web/static/tests/views/kanban_model_tests.js b/addons/web/static/tests/views/kanban_model_tests.js
index 793a5749b46..2598f2bd676 100644
--- a/addons/web/static/tests/views/kanban_model_tests.js
+++ b/addons/web/static/tests/views/kanban_model_tests.js
@@ -67,7 +67,7 @@ QUnit.module('Views', {
assert.expect(22);
var calledRoutes = {};
- var model = createModel({
+ var model = await createModel({
Model: KanbanModel,
data: this.data,
mockRPC: function (route) {
@@ -132,7 +132,7 @@ QUnit.module('Views', {
var done = assert.async();
assert.expect(4);
- var model = createModel({
+ var model = await createModel({
Model: KanbanModel,
data: this.data,
mockRPC: function (route, args) {
@@ -173,7 +173,7 @@ QUnit.module('Views', {
var done = assert.async();
assert.expect(2);
- var model = createModel({
+ var model = await createModel({
Model: KanbanModel,
data: this.data,
mockRPC: function (route, args) {
@@ -210,7 +210,7 @@ QUnit.module('Views', {
this.data.partner.records.push({id: 3, foo: 'aaa', product_id: 37});
var nbReseq = 0;
- var model = createModel({
+ var model = await createModel({
Model: KanbanModel,
data: this.data,
mockRPC: function (route, args) {
@@ -270,7 +270,7 @@ QUnit.module('Views', {
assert.expect(8);
var self = this;
- var model = createModel({
+ var model = await createModel({
Model: KanbanModel,
data: this.data,
});
diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js
index 22c29168585..225826c8515 100644
--- a/addons/web/static/tests/views/kanban_tests.js
+++ b/addons/web/static/tests/views/kanban_tests.js
@@ -5420,7 +5420,7 @@ QUnit.module('Views', {
});
QUnit.test('check if the view destroys all widgets and instances', async function (assert) {
- assert.expect(1);
+ assert.expect(2);
var instanceNumber = 0;
testUtils.mock.patch(mixins.ParentedMixin, {
@@ -5457,21 +5457,10 @@ QUnit.module('Views', {
};
var kanban = await createView(params);
- kanban.destroy();
-
- var initialInstanceNumber = instanceNumber;
- instanceNumber = 0;
-
- kanban = await createView(params);
-
- // call destroy function of controller to ensure that it correctly destroys everything
- kanban.__destroy();
-
- // + 1 (parent)
- assert.strictEqual(instanceNumber, initialInstanceNumber + 1,
- "every widget must be destroyed exept the parent");
+ assert.ok(instanceNumber > 0);
kanban.destroy();
+ assert.strictEqual(instanceNumber, 0);
testUtils.mock.unpatch(mixins.ParentedMixin);
});
diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js
index d69aef904c1..67c1a7962a0 100644
--- a/addons/web/static/tests/views/list_tests.js
+++ b/addons/web/static/tests/views/list_tests.js
@@ -7409,7 +7409,7 @@ QUnit.module('Views', {
});
QUnit.test('check if the view destroys all widgets and instances', async function (assert) {
- assert.expect(1);
+ assert.expect(2);
var instanceNumber = 0;
testUtils.mock.patch(mixins.ParentedMixin, {
@@ -7446,21 +7446,10 @@ QUnit.module('Views', {
};
var list = await createView(params);
- list.destroy();
-
- var initialInstanceNumber = instanceNumber;
- instanceNumber = 0;
-
- list = await createView(params);
-
- // call destroy function of controller to ensure that it correctly destroys everything
- list.__destroy();
-
- // + 1 (parent)
- assert.strictEqual(instanceNumber, initialInstanceNumber + 1,
- "every widget must be destroyed exept the parent");
+ assert.ok(instanceNumber > 0);
list.destroy();
+ assert.strictEqual(instanceNumber, 0);
testUtils.mock.unpatch(mixins.ParentedMixin);
});
diff --git a/addons/web/static/tests/widgets/company_switcher_tests.js b/addons/web/static/tests/widgets/company_switcher_tests.js
index 6b3ead230ca..fe0fec5e6c2 100644
--- a/addons/web/static/tests/widgets/company_switcher_tests.js
+++ b/addons/web/static/tests/widgets/company_switcher_tests.js
@@ -9,7 +9,7 @@ async function createSwitchCompanyMenu(params) {
params = params || {};
var target = params.debug ? document.body : $('#qunit-fixture');
var menu = new SwitchCompanyMenu();
- testUtils.mock.addMockEnvironment(menu, params);
+ await testUtils.mock.addMockEnvironment(menu, params);
await menu.appendTo(target)
return menu
}
diff --git a/addons/web/static/tests/widgets/domain_selector_tests.js b/addons/web/static/tests/widgets/domain_selector_tests.js
index 8c246fd8399..a587117f95a 100644
--- a/addons/web/static/tests/widgets/domain_selector_tests.js
+++ b/addons/web/static/tests/widgets/domain_selector_tests.js
@@ -60,7 +60,7 @@ QUnit.module('DomainSelector', {
readonly: false,
debugMode: true,
});
- testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
await domainSelector.appendTo($target);
// As we gave an empty domain, there should be a visible button to add
@@ -161,7 +161,7 @@ QUnit.module('DomainSelector', {
var domainSelector = new DomainSelector(null, "partner", [["nice_datetime", "=", "2017-03-27 15:42:00"]], {
readonly: false,
});
- testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
await domainSelector.appendTo($target);
// Check that there is a datepicker to choose the date
@@ -189,7 +189,7 @@ QUnit.module('DomainSelector', {
debugMode: true,
readonly: false,
});
- testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
await domainSelector.appendTo($target);
await testUtils.fields.editAndTrigger(domainSelector.$('.o_domain_leaf_value_input'),
@@ -210,7 +210,7 @@ QUnit.module('DomainSelector', {
debugMode: true,
readonly: false,
});
- testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
await domainSelector.appendTo($target);
assert.strictEqual(domainSelector.$el.text(), "This domain is not supported.",
@@ -230,7 +230,7 @@ QUnit.module('DomainSelector', {
debugMode: true,
default: [["foo","=","kikou"]],
});
- testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
await domainSelector.appendTo($target);
// Clicking on the button should add a visible field selector in the
diff --git a/addons/web/static/tests/widgets/model_field_selector_tests.js b/addons/web/static/tests/widgets/model_field_selector_tests.js
index 75580e09df3..69bb1eb9314 100644
--- a/addons/web/static/tests/widgets/model_field_selector_tests.js
+++ b/addons/web/static/tests/widgets/model_field_selector_tests.js
@@ -59,7 +59,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
debugMode: true,
});
- testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
var $value = fieldSelector.$("> .o_field_selector_value");
@@ -182,7 +182,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
debugMode: true,
});
- testUtils.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
// Focusing the field selector input should open a field selector popover
@@ -215,7 +215,7 @@ QUnit.module('ModelFieldSelector', {
return field.type === 'many2one';
},
});
- testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
fieldSelector.$el.trigger('focusin');
@@ -237,7 +237,7 @@ QUnit.module('ModelFieldSelector', {
var fieldSelector = new ModelFieldSelector(null, "partner", [], {
readonly: false,
});
- testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
fieldSelector.$el.trigger('focusin');
@@ -269,7 +269,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
showSearchInput: false,
});
- testUtils.mock.addMockEnvironment(fieldSelector, { data: this.data });
+ await testUtils.mock.addMockEnvironment(fieldSelector, { data: this.data });
await fieldSelector.appendTo($target);
fieldSelector.$el.trigger('focusin');
@@ -291,7 +291,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
showSearchInput: false,
});
- testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
var $fieldName = fieldSelector.$('.o_field_selector_chain_part');
@@ -311,7 +311,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
showSearchInput: false,
});
- testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
+ await testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
await fieldSelector.appendTo($target);
var $fieldName = fieldSelector.$('.o_field_selector_chain_part');
diff --git a/addons/web_editor/static/tests/test_utils.js b/addons/web_editor/static/tests/test_utils.js
index 8b28e292438..9cd3249f953 100644
--- a/addons/web_editor/static/tests/test_utils.js
+++ b/addons/web_editor/static/tests/test_utils.js
@@ -293,12 +293,12 @@ function wysiwygData(data) {
*
* @param {object} params
*/
-function createWysiwyg(params) {
+async function createWysiwyg(params) {
patch();
params.data = wysiwygData(params.data);
var parent = new Widget();
- testUtils.mock.addMockEnvironment(parent, params);
+ await testUtils.mock.addMockEnvironment(parent, params);
var wysiwygOptions = _.extend({}, params.wysiwygOptions, {
recordInfo: {
diff --git a/addons/web_tour/static/tests/tour_manager_tests.js b/addons/web_tour/static/tests/tour_manager_tests.js
index 79ce4c0ceb5..14802f9086f 100644
--- a/addons/web_tour/static/tests/tour_manager_tests.js
+++ b/addons/web_tour/static/tests/tour_manager_tests.js
@@ -20,7 +20,7 @@ odoo.define('web_tour.tour_manager_tests', async function (require) {
* @param {Object[]} params.tours { {string} name, {Object} option, {Object[]} steps }
*/
async function createTourManager({ consumed_tours, debug, template, tours }) {
- const parent = testUtils.createParent({ debug });
+ const parent = await testUtils.createParent({ debug });
const tourManager = new TourManager(parent, consumed_tours);
tourManager.running_step_delay = 0;
for (const { name, options, steps } of tours) {