Browse Source

Don't ignore groupchat messages that also contain a CSN

JC Brand 5 năm trước cách đây
mục cha
commit
5e27579ebe
2 tập tin đã thay đổi với 26 bổ sung1 xóa
  1. 24 0
      spec/muc_messages.js
  2. 2 1
      src/headless/converse-muc.js

+ 24 - 0
spec/muc_messages.js

@@ -116,6 +116,30 @@
             done();
         }));
 
+        it("can contain a chat state notification and will still be shown",
+            mock.initConverse(
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                async function (done, _converse) {
+
+            const muc_jid = 'lounge@montague.lit';
+            await test_utils.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
+            const view = _converse.api.chatviews.get(muc_jid);
+            if (!view.el.querySelectorAll('.chat-area').length) { view.renderChatArea(); }
+            const message = 'romeo: Your attention is required';
+            const nick = mock.chatroom_names[0],
+                msg = $msg({
+                    from: 'lounge@montague.lit/'+nick,
+                    id: u.getUniqueId(),
+                    to: 'romeo@montague.lit',
+                    type: 'groupchat'
+                }).c('body').t(message)
+                  .c('active', {'xmlns': "http://jabber.org/protocol/chatstates"})
+                  .tree();
+            await view.model.queueMessage(msg);
+            await new Promise(resolve => view.once('messageInserted', resolve));
+            expect(view.el.querySelector('.chat-msg')).not.toBe(null);
+            done();
+        }));
 
         it("is specially marked when you are mentioned in it",
             mock.initConverse(

+ 2 - 1
src/headless/converse-muc.js

@@ -1950,7 +1950,8 @@ converse.plugins.add('converse-muc', {
 
                 if (attrs['chat_state']) {
                     this.updateCSN(attrs);
-                } else if (u.shouldCreateGroupchatMessage(attrs)) {
+                }
+                if (u.shouldCreateGroupchatMessage(attrs)) {
                     const msg = this.handleCorrection(attrs) || await this.createMessage(attrs);
                     this.incrementUnreadMsgCounter(msg);
                 }