浏览代码

fix failing test

JC Brand 4 年之前
父节点
当前提交
767d5ec91d
共有 2 个文件被更改,包括 20 次插入16 次删除
  1. 18 16
      src/headless/plugins/muc/muc.js
  2. 2 0
      src/plugins/muc-views/tests/retractions.js

+ 18 - 16
src/headless/plugins/muc/muc.js

@@ -678,26 +678,28 @@ const ChatRoomMixin = {
             id = this.getUniqueId('sendIQ');
             el.setAttribute('id', id);
         }
-        const promise = getOpenPromise();
+        let handler;
         const timeoutHandler = _converse.connection.addTimedHandler(_converse.STANZA_TIMEOUT, () => {
             _converse.connection.deleteHandler(handler);
             promise.reject(new _converse.TimeoutError('Timeout Error: No response from server'));
             return false;
         });
-        const handler = _converse.connection.addHandler(
-            stanza => {
-                timeoutHandler && _converse.connection.deleteTimedHandler(timeoutHandler);
-                if (stanza.getAttribute('type') === 'groupchat') {
-                    promise.resolve(stanza);
-                } else {
-                    promise.reject(stanza);
-                }
-            },
-            null,
-            'message',
-            ['error', 'groupchat'],
-            id
-        );
+        const promise = new Promise((resolve, reject) => {
+            handler = _converse.connection.addHandler(
+                stanza => {
+                    timeoutHandler && _converse.connection.deleteTimedHandler(timeoutHandler);
+                    if (stanza.getAttribute('type') === 'groupchat') {
+                        resolve(stanza);
+                    } else {
+                        reject(stanza);
+                    }
+                },
+                null,
+                'message',
+                ['error', 'groupchat'],
+                id
+            );
+        });
         api.send(el);
         return promise;
     },
@@ -738,6 +740,7 @@ const ChatRoomMixin = {
         try {
             await this.sendTimedMessage(stanza);
         } catch (e) {
+            log.error(e);
             message.save({
                 editable,
                 'error_type': 'timeout',
@@ -745,7 +748,6 @@ const ChatRoomMixin = {
                 'retracted': undefined,
                 'retracted_id': undefined
             });
-            throw e;
         }
     },
 

+ 2 - 0
src/plugins/muc-views/tests/retractions.js

@@ -627,6 +627,7 @@ describe("Message Retractions", function () {
             await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo', features);
             const view = _converse.chatboxviews.get(muc_jid);
             const occupant = view.model.getOwnOccupant();
+
             expect(occupant.get('role')).toBe('moderator');
             occupant.save('role', 'member');
             await u.waitUntil(() => view.querySelector('.chat-content__notifications').textContent.includes("romeo is no longer a moderator"));
@@ -654,6 +655,7 @@ describe("Message Retractions", function () {
                 </message>`);
 
             _converse.connection._dataRecv(mock.createRequest(error));
+
             await u.waitUntil(() => view.querySelectorAll('.chat-msg__error').length === 1, 1000);
             await u.waitUntil(() => view.querySelectorAll('.chat-msg--retracted').length === 0, 1000);
             expect(view.model.messages.length).toBe(1);