summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/chrome/systray_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/chrome/systray_tests.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/web/static/tests/chrome/systray_tests.js')
-rw-r--r--addons/web/static/tests/chrome/systray_tests.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/addons/web/static/tests/chrome/systray_tests.js b/addons/web/static/tests/chrome/systray_tests.js
new file mode 100644
index 00000000..941e275f
--- /dev/null
+++ b/addons/web/static/tests/chrome/systray_tests.js
@@ -0,0 +1,42 @@
+odoo.define('web.systray_tests', function (require) {
+ "use strict";
+
+ var testUtils = require('web.test_utils');
+ var SystrayMenu = require('web.SystrayMenu');
+ var Widget = require('web.Widget');
+
+ QUnit.test('Adding async components to the registry respects the sequence', async function (assert) {
+ assert.expect(2);
+ var parent = await testUtils.createParent({});
+ var prom = testUtils.makeTestPromise();
+
+ var synchronousFirstWidget = Widget.extend({
+ sequence: 3, // bigger sequence means more to the left
+ start: function () {
+ this.$el.addClass('first');
+ }
+ });
+ var asynchronousSecondWidget = Widget.extend({
+ sequence: 1, // smaller sequence means more to the right
+ willStart: function () {
+ return prom;
+ },
+ start: function () {
+ this.$el.addClass('second');
+ }
+ });
+
+ SystrayMenu.Items = [synchronousFirstWidget, asynchronousSecondWidget];
+ var menu = new SystrayMenu(parent);
+
+ menu.appendTo($('#qunit-fixture'));
+ await testUtils.nextTick();
+ prom.resolve();
+ await testUtils.nextTick();
+
+ assert.hasClass(menu.$('div:eq(0)'), 'first');
+ assert.hasClass(menu.$('div:eq(1)'), 'second');
+
+ parent.destroy();
+ })
+});