From 9500900f22709de313739e81a3fa2453ffcebbee Mon Sep 17 00:00:00 2001 From: JC Brand Date: Tue, 22 May 2018 21:50:28 +0200 Subject: [PATCH] Make sure bookmarks are cleared before re-initializing Otherwise subtle, hard-to-reproduce bugs happen while testing. Also, don't unnecessarily call `delegateEvents`, it also causes heisen-breakage. --- spec/login.js | 1 - src/converse-core.js | 3 +++ tests/utils.js | 18 ++++++++---------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/login.js b/spec/login.js index b74c4e24a..f6ac49d8c 100644 --- a/spec/login.js +++ b/spec/login.js @@ -66,7 +66,6 @@ cbview.el.querySelector('input[name="password"]').value = 'secret'; spyOn(cbview.loginpanel, 'connect'); - cbview.delegateEvents(); expect(_converse.storage).toBe('session'); cbview.el.querySelector('input[type="submit"]').click(); diff --git a/src/converse-core.js b/src/converse-core.js index 66a5c97c5..651749556 100644 --- a/src/converse-core.js +++ b/src/converse-core.js @@ -252,6 +252,9 @@ // This happens in tests. We therefore first clean up. Backbone.history.stop(); _converse.chatboxviews.closeAllChatBoxes(); + if (_converse.bookmarks) { + _converse.bookmarks.reset(); + } delete _converse.controlboxtoggle; delete _converse.chatboxviews; _converse.connection.reset(); diff --git a/tests/utils.js b/tests/utils.js index afcce186e..e22593a1b 100644 --- a/tests/utils.js +++ b/tests/utils.js @@ -131,7 +131,7 @@ _converse.api.rooms.open(`${room}@${server}`); const view = _converse.chatboxviews.get((room+'@'+server).toLowerCase()); // We pretend this is a new room, so no disco info is returned. - last_stanza = _.last(_converse.connection.IQ_stanzas).nodeTree; + let last_stanza = _.last(_converse.connection.IQ_stanzas).nodeTree; const IQ_id = last_stanza.getAttribute('id'); const features_stanza = $iq({ 'from': room+'@'+server, @@ -146,15 +146,12 @@ return _.filter( _converse.connection.IQ_stanzas, (node) => { const query = node.nodeTree.querySelector('query'); - return query && query.getAttribute('node') === 'x-roomuser-item' + if (query && query.getAttribute('node') === 'x-roomuser-item') { + last_stanza = node.nodeTree; + return true; + } }).length }).then(function () { - const last_stanza = _.filter( - _converse.connection.IQ_stanzas, (node) => { - const query = node.nodeTree.querySelector('query'); - return query && query.getAttribute('node') === 'x-roomuser-item' - }).pop().nodeTree; - // The XMPP server returns the reserved nick for this user. const IQ_id = last_stanza.getAttribute('id'); const stanza = $iq({ @@ -181,8 +178,9 @@ .c('status').attrs({code:'110'}); _converse.connection._dataRecv(utils.createRequest(presence)); resolve(); - }); - }); + + }).catch(_.partial(console.error, _)); + }).catch(_.partial(console.error, _)); }; utils.clearBrowserStorage = function () {