浏览代码

Corrections bugfix. Don't save new `id` on message model

otherwise a new cache entry gets created, causing multiple messages to
be restored from cache later on.
JC Brand 6 年之前
父节点
当前提交
681c3a2c12
共有 2 个文件被更改,包括 5 次插入0 次删除
  1. 4 0
      spec/messages.js
  2. 1 0
      src/headless/converse-chatboxes.js

+ 4 - 0
spec/messages.js

@@ -1480,6 +1480,8 @@
                     .toBe('But soft, what light through yonder chimney breaks?');
                 expect(view.el.querySelectorAll('.chat-msg').length).toBe(1);
                 expect(view.el.querySelectorAll('.chat-msg__content .fa-edit').length).toBe(1);
+                expect(view.model.messages.models.length).toBe(1);
+                expect(view.model.messages.browserStorage.records.length).toBe(1);
 
                 _converse.chatboxes.onMessage($msg({
                         'from': sender_jid,
@@ -1501,6 +1503,8 @@
                 expect(older_msgs.length).toBe(2);
                 expect(older_msgs[0].childNodes[0].nodeName).toBe('TIME');
                 expect(older_msgs[0].childNodes[1].textContent).toBe(': But soft, what light through yonder airlock breaks?');
+                expect(view.model.messages.models.length).toBe(1);
+                expect(view.model.messages.browserStorage.records.length).toBe(1);
                 done();
             }));
 

+ 1 - 0
src/headless/converse-chatboxes.js

@@ -485,6 +485,7 @@ converse.plugins.add('converse-chatboxes', {
                     // This is a correction of an earlier message we already received
                     older_versions[message.get('time')] = message.get('message');
                     attrs = Object.assign(attrs, {'older_versions': older_versions});
+                    delete attrs['id']; // Delete id, otherwise a new cache entry gets created
                     message.save(attrs);
                 }
                 return message;