summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection.js6
-rw-r--r--addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js98
-rw-r--r--addons/mail/views/assets.xml6
3 files changed, 109 insertions, 1 deletions
diff --git a/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection.js b/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection.js
index c2185a60dc0..d2fa4aa936a 100644
--- a/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection.js
+++ b/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection.js
@@ -73,7 +73,11 @@ class DiscussMobileMailboxSelection extends Component {
* @param {MouseEvent} ev
*/
_onClick(ev) {
- const { mailbox } = ev.currentTarget.dataset;
+ const { mailboxLocalId } = ev.currentTarget.dataset;
+ const mailbox = this.env.models['mail.thread'].get(mailboxLocalId);
+ if (!mailbox) {
+ return;
+ }
mailbox.open();
}
diff --git a/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js b/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js
new file mode 100644
index 00000000000..261d8c4bf54
--- /dev/null
+++ b/addons/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js
@@ -0,0 +1,98 @@
+odoo.define('mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js', function (require) {
+'use strict';
+
+const {
+ afterEach,
+ afterNextRender,
+ beforeEach,
+ start,
+} = require('mail/static/src/utils/test_utils.js');
+
+QUnit.module('mail', {}, function () {
+QUnit.module('components', {}, function () {
+QUnit.module('discuss_mobile_mailbox_selection', {}, function () {
+QUnit.module('discuss_mobile_mailbox_selection_tests.js', {
+ beforeEach() {
+ beforeEach(this);
+
+ this.start = async params => {
+ const { env, widget } = await start(Object.assign(
+ {
+ autoOpenDiscuss: true,
+ data: this.data,
+ env: {
+ browser: {
+ innerHeight: 640,
+ innerWidth: 360,
+ },
+ device: {
+ isMobile: true,
+ },
+ },
+ hasDiscuss: true,
+ },
+ params,
+ ));
+ this.env = env;
+ this.widget = widget;
+ };
+ },
+ afterEach() {
+ afterEach(this);
+ },
+});
+
+QUnit.test('select another mailbox', async function (assert) {
+ assert.expect(7);
+
+ await this.start();
+ assert.containsOnce(
+ document.body,
+ '.o_Discuss',
+ "should display discuss initially"
+ );
+ assert.hasClass(
+ document.querySelector('.o_Discuss'),
+ 'o-mobile',
+ "discuss should be opened in mobile mode"
+ );
+ assert.containsOnce(
+ document.body,
+ '.o_Discuss_thread',
+ "discuss should display a thread initially"
+ );
+ assert.strictEqual(
+ document.querySelector('.o_Discuss_thread').dataset.threadLocalId,
+ this.env.messaging.inbox.localId,
+ "inbox mailbox should be opened initially"
+ );
+ assert.containsOnce(
+ document.body,
+ `.o_DiscussMobileMailboxSelection_button[
+ data-mailbox-local-id="${this.env.messaging.starred.localId}"
+ ]`,
+ "should have a button to open starred mailbox"
+ );
+
+ await afterNextRender(() =>
+ document.querySelector(`.o_DiscussMobileMailboxSelection_button[
+ data-mailbox-local-id="${this.env.messaging.starred.localId}"]
+ `).click()
+ );
+ assert.containsOnce(
+ document.body,
+ '.o_Discuss_thread',
+ "discuss should still have a thread after clicking on starred mailbox"
+ );
+ assert.strictEqual(
+ document.querySelector('.o_Discuss_thread').dataset.threadLocalId,
+ this.env.messaging.starred.localId,
+ "starred mailbox should be opened after clicking on it"
+ );
+});
+
+});
+});
+});
+
+});
diff --git a/addons/mail/views/assets.xml b/addons/mail/views/assets.xml
index 1b8d194df66..fce138c7ca4 100644
--- a/addons/mail/views/assets.xml
+++ b/addons/mail/views/assets.xml
@@ -296,5 +296,11 @@
<script type="text/javascript" src="/mail/static/src/widgets/notification_alert/notification_alert_tests.js"/>
</xpath>
</template>
+
+ <template id="qunit_mobile_suite" name="mail_qunit_mobile_suite" inherit_id="web.qunit_mobile_suite_tests">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/mail/static/src/components/discuss_mobile_mailbox_selection/discuss_mobile_mailbox_selection_tests.js"/>
+ </xpath>
+ </template>
</data>
</odoo>