summaryrefslogtreecommitdiff
path: root/addons/im_livechat/static/src/components/messaging_menu
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/im_livechat/static/src/components/messaging_menu
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/im_livechat/static/src/components/messaging_menu')
-rw-r--r--addons/im_livechat/static/src/components/messaging_menu/messaging_menu_tests.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/addons/im_livechat/static/src/components/messaging_menu/messaging_menu_tests.js b/addons/im_livechat/static/src/components/messaging_menu/messaging_menu_tests.js
new file mode 100644
index 00000000..03c164c5
--- /dev/null
+++ b/addons/im_livechat/static/src/components/messaging_menu/messaging_menu_tests.js
@@ -0,0 +1,100 @@
+odoo.define('im_livechat/static/src/components/messaging_menu/messaging_menu_tests.js', function (require) {
+'use strict';
+
+const {
+ afterEach,
+ afterNextRender,
+ beforeEach,
+ start,
+} = require('mail/static/src/utils/test_utils.js');
+
+QUnit.module('im_livechat', {}, function () {
+QUnit.module('components', {}, function () {
+QUnit.module('messaging_menu', {}, function () {
+QUnit.module('messaging_menu_tests.js', {
+ beforeEach() {
+ beforeEach(this);
+
+ this.start = async params => {
+ let { env, widget } = await start(Object.assign({}, params, {
+ data: this.data,
+ hasMessagingMenu: true,
+ }));
+ this.env = env;
+ this.widget = widget;
+ };
+ },
+ afterEach() {
+ afterEach(this);
+ },
+});
+
+QUnit.test('livechats should be in "chat" filter', async function (assert) {
+ assert.expect(7);
+
+ this.data['mail.channel'].records.push({
+ anonymous_name: "Visitor 11",
+ channel_type: 'livechat',
+ id: 11,
+ livechat_operator_id: this.data.currentPartnerId,
+ members: [this.data.currentPartnerId, this.data.publicPartnerId],
+ });
+ await this.start();
+ assert.containsOnce(
+ document.body,
+ '.o_MessagingMenu',
+ "should have messaging menu"
+ );
+
+ await afterNextRender(() => document.querySelector('.o_MessagingMenu_toggler').click());
+ assert.containsOnce(
+ document.body,
+ '.o_MessagingMenu_tabButton[data-tab-id="all"]',
+ "should have a tab/filter 'all' in messaging menu"
+ );
+ assert.containsOnce(
+ document.body,
+ '.o_MessagingMenu_tabButton[data-tab-id="chat"]',
+ "should have a tab/filter 'chat' in messaging menu"
+ );
+ assert.hasClass(
+ document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="all"]'),
+ 'o-active',
+ "tab/filter 'all' of messaging menu should be active initially"
+ );
+ assert.containsOnce(
+ document.body,
+ `.o_ThreadPreview[data-thread-local-id="${
+ this.env.models['mail.thread'].findFromIdentifyingData({
+ id: 11,
+ model: 'mail.channel',
+ }).localId
+ }"]`,
+ "livechat should be listed in 'all' tab/filter of messaging menu"
+ );
+
+ await afterNextRender(() =>
+ document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="chat"]').click()
+ );
+ assert.hasClass(
+ document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="chat"]'),
+ 'o-active',
+ "tab/filter 'chat' of messaging menu should become active after click"
+ );
+ assert.containsOnce(
+ document.body,
+ `.o_ThreadPreview[data-thread-local-id="${
+ this.env.models['mail.thread'].findFromIdentifyingData({
+ id: 11,
+ model: 'mail.channel',
+ }).localId
+ }"]`,
+ "livechat should be listed in 'chat' tab/filter of messaging menu"
+ );
+});
+
+});
+});
+});
+
+});