Pārlūkot izejas kodu

Remove need to pass in spies to `initConverse`

They aren't used anymore.
JC Brand 5 gadi atpakaļ
vecāks
revīzija
877e07775a

+ 3 - 3
spec/autocomplete.js

@@ -13,7 +13,7 @@
 
 
         it("shows all autocompletion options when the user presses @",
         it("shows all autocompletion options when the user presses @",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'tom');
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'tom');
@@ -55,7 +55,7 @@
 
 
         it("autocompletes when the user presses tab",
         it("autocompletes when the user presses tab",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -166,7 +166,7 @@
 
 
         it("autocompletes when the user presses backspace",
         it("autocompletes when the user presses backspace",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
             await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');

+ 11 - 11
spec/bookmarks.js

@@ -16,7 +16,7 @@
     describe("A chat room", function () {
     describe("A chat room", function () {
 
 
         it("can be bookmarked", mock.initConverse(
         it("can be bookmarked", mock.initConverse(
-            null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+            ['rosterGroupsFetched', 'emojisInitialized'], {},
             async function (done, _converse) {
             async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -142,7 +142,7 @@
 
 
 
 
         it("will be automatically opened if 'autojoin' is set on the bookmark", mock.initConverse(
         it("will be automatically opened if 'autojoin' is set on the bookmark", mock.initConverse(
-            null, ['rosterGroupsFetched'], {},
+            ['rosterGroupsFetched'], {},
             async function (done, _converse) {
             async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -186,7 +186,7 @@
         describe("when bookmarked", function () {
         describe("when bookmarked", function () {
 
 
             it("will use the nickname from the bookmark", mock.initConverse(
             it("will use the nickname from the bookmark", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(
                 await test_utils.waitUntilDiscoConfirmed(
@@ -211,7 +211,7 @@
             }));
             }));
 
 
             it("displays that it's bookmarked through its bookmark icon", mock.initConverse(
             it("displays that it's bookmarked through its bookmark icon", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 test_utils.waitUntilDiscoConfirmed(
                 test_utils.waitUntilDiscoConfirmed(
@@ -239,7 +239,7 @@
             }));
             }));
 
 
             it("can be unbookmarked", mock.initConverse(
             it("can be unbookmarked", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -317,7 +317,7 @@
         describe("and when autojoin is set", function () {
         describe("and when autojoin is set", function () {
 
 
             it("will be be opened and joined automatically upon login", mock.initConverse(
             it("will be be opened and joined automatically upon login", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.waitUntilBookmarksReturned(_converse);
                 await test_utils.waitUntilBookmarksReturned(_converse);
@@ -346,7 +346,7 @@
     describe("Bookmarks", function () {
     describe("Bookmarks", function () {
 
 
         it("can be pushed from the XMPP server", mock.initConverse(
         it("can be pushed from the XMPP server", mock.initConverse(
-            ['send'], ['rosterGroupsFetched', 'connected'], {},
+            ['rosterGroupsFetched', 'connected'], {},
             async function (done, _converse) {
             async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -404,7 +404,7 @@
 
 
 
 
         it("can be retrieved from the XMPP server", mock.initConverse(
         it("can be retrieved from the XMPP server", mock.initConverse(
-                null, ['chatBoxesFetched', 'roomsPanelRendered', 'rosterGroupsFetched'], {},
+                ['chatBoxesFetched', 'roomsPanelRendered', 'rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -482,7 +482,7 @@
         describe("The rooms panel", function () {
         describe("The rooms panel", function () {
 
 
             it("shows a list of bookmarks", mock.initConverse(
             it("shows a list of bookmarks", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(
                 await test_utils.waitUntilDiscoConfirmed(
@@ -558,7 +558,7 @@
 
 
 
 
             it("remembers the toggle state of the bookmarks list", mock.initConverse(
             it("remembers the toggle state of the bookmarks list", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -614,7 +614,7 @@
     describe("When hide_open_bookmarks is true and a bookmarked room is opened", function () {
     describe("When hide_open_bookmarks is true and a bookmarked room is opened", function () {
 
 
         it("can be closed", mock.initConverse(
         it("can be closed", mock.initConverse(
-            null, ['rosterGroupsFetched'],
+            ['rosterGroupsFetched'],
             { hide_open_bookmarks: true },
             { hide_open_bookmarks: true },
             async function (done, _converse) {
             async function (done, _converse) {
 
 

+ 51 - 58
spec/chatbox.js

@@ -16,10 +16,7 @@
 
 
         describe("A Chatbox", function () {
         describe("A Chatbox", function () {
 
 
-            it("has a /help command to show the available commands",
-                mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
-                    async function (done, _converse) {
+            it("has a /help command to show the available commands", mock.initConverse(['rosterGroupsFetched', 'chatBoxesFetched'], {}, async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -48,11 +45,7 @@
             }));
             }));
 
 
 
 
-            it("supports the /me command",
-                mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
-                    async function (done, _converse) {
-
+            it("supports the /me command", mock.initConverse(['rosterGroupsFetched'], {}, async function (done, _converse) {
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
                 await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
                 await u.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'));
                 await u.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'));
@@ -98,7 +91,7 @@
             }));
             }));
 
 
             it("is created when you click on a roster item", mock.initConverse(
             it("is created when you click on a roster item", mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -128,7 +121,7 @@
             }));
             }));
 
 
             it("opens when a new message is received", mock.initConverse(
             it("opens when a new message is received", mock.initConverse(
-                null, ['rosterGroupsFetched'], {'allow_non_roster_messaging': true},
+                ['rosterGroupsFetched'], {'allow_non_roster_messaging': true},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 _converse.api.trigger('rosterContactsFetched');
                 _converse.api.trigger('rosterContactsFetched');
@@ -149,7 +142,7 @@
             }));
             }));
 
 
             it("doesn't open when a message without body is received", mock.initConverse(
             it("doesn't open when a message without body is received", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -168,7 +161,7 @@
             }));
             }));
 
 
             it("can be trimmed to conserve space",
             it("can be trimmed to conserve space",
-                mock.initConverse(null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                mock.initConverse(['rosterGroupsFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 spyOn(_converse.chatboxviews, 'trimChats');
                 spyOn(_converse.chatboxviews, 'trimChats');
@@ -225,7 +218,7 @@
 
 
             it("can be opened in minimized mode initially",
             it("can be opened in minimized mode initially",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -243,7 +236,7 @@
 
 
 
 
             it("is focused if its already open and you click on its corresponding roster item",
             it("is focused if its already open and you click on its corresponding roster item",
-                mock.initConverse(null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                mock.initConverse(['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -269,7 +262,7 @@
 
 
             it("can be saved to, and retrieved from, browserStorage",
             it("can be saved to, and retrieved from, browserStorage",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.ChatBoxViews.prototype, 'trimChats');
                 spyOn(_converse.ChatBoxViews.prototype, 'trimChats');
@@ -305,7 +298,7 @@
 
 
             it("can be closed by clicking a DOM element with class 'close-chatbox-button'",
             it("can be closed by clicking a DOM element with class 'close-chatbox-button'",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -340,7 +333,7 @@
 
 
             it("can be minimized by clicking a DOM element with class 'toggle-chatbox-button'",
             it("can be minimized by clicking a DOM element with class 'toggle-chatbox-button'",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -379,7 +372,7 @@
 
 
             it("will be removed from browserStorage when closed",
             it("will be removed from browserStorage when closed",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.ChatBoxViews.prototype, 'trimChats');
                 spyOn(_converse.ChatBoxViews.prototype, 'trimChats');
@@ -420,7 +413,7 @@
 
 
                 it("can be found on each chat box",
                 it("can be found on each chat box",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 3);
                     await test_utils.waitForRoster(_converse, 'current', 3);
@@ -439,7 +432,7 @@
 
 
                 it("shows the remaining character count if a message_limit is configured",
                 it("shows the remaining character count if a message_limit is configured",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'message_limit': 200},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {'message_limit': 200},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 3);
                     await test_utils.waitForRoster(_converse, 'current', 3);
@@ -479,7 +472,7 @@
 
 
                 it("does not show a remaining character count if message_limit is zero",
                 it("does not show a remaining character count if message_limit is zero",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'message_limit': 0},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {'message_limit': 0},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 3);
                     await test_utils.waitForRoster(_converse, 'current', 3);
@@ -495,7 +488,7 @@
 
 
                 it("can contain a button for starting a call",
                 it("can contain a button for starting a call",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current');
                     await test_utils.waitForRoster(_converse, 'current');
@@ -530,7 +523,7 @@
 
 
                 it("is ignored when it's a carbon copy of one of my own",
                 it("is ignored when it's a carbon copy of one of my own",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current');
                     await test_utils.waitForRoster(_converse, 'current');
@@ -562,7 +555,7 @@
 
 
                 it("does not open a new chatbox",
                 it("does not open a new chatbox",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current');
                     await test_utils.waitForRoster(_converse, 'current');
@@ -587,7 +580,7 @@
 
 
                     it("is sent when the user opens a chat box",
                     it("is sent when the user opens a chat box",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -609,7 +602,7 @@
                     }));
                     }));
 
 
                     it("is sent when the user maximizes a minimized a chat box", mock.initConverse(
                     it("is sent when the user maximizes a minimized a chat box", mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current', 1);
                         await test_utils.waitForRoster(_converse, 'current', 1);
@@ -643,7 +636,7 @@
 
 
                     it("is sent as soon as the user starts typing a message which is not a command",
                     it("is sent as soon as the user starts typing a message which is not a command",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -682,7 +675,7 @@
 
 
                     it("is NOT sent out if send_chat_state_notifications doesn't allow it",
                     it("is NOT sent out if send_chat_state_notifications doesn't allow it",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'send_chat_state_notifications': []},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {'send_chat_state_notifications': []},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -706,7 +699,7 @@
 
 
                     it("will be shown if received",
                     it("will be shown if received",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched'], {},
+                            ['rosterGroupsFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -751,7 +744,7 @@
 
 
                     it("can be a composing carbon message that this user sent from a different client",
                     it("can be a composing carbon message that this user sent from a different client",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
                         await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
@@ -796,7 +789,7 @@
 
 
                     it("is sent if the user has stopped typing since 30 seconds",
                     it("is sent if the user has stopped typing since 30 seconds",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -850,7 +843,7 @@
 
 
                     it("will be shown if received",
                     it("will be shown if received",
                             mock.initConverse(
                             mock.initConverse(
-                                null, ['rosterGroupsFetched'], {},
+                                ['rosterGroupsFetched'], {},
                                 async function (done, _converse) {
                                 async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -878,7 +871,7 @@
 
 
                     it("can be a paused carbon message that this user sent from a different client",
                     it("can be a paused carbon message that this user sent from a different client",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
                         await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
@@ -923,7 +916,7 @@
 
 
                     it("is sent if the user has stopped typing since 2 minutes",
                     it("is sent if the user has stopped typing since 2 minutes",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         const sent_stanzas = _converse.connection.sent_stanzas;
                         const sent_stanzas = _converse.connection.sent_stanzas;
@@ -986,7 +979,7 @@
 
 
                     it("is sent when the user a minimizes a chat box",
                     it("is sent when the user a minimizes a chat box",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -1007,7 +1000,7 @@
 
 
                     it("is sent if the user closes a chat box",
                     it("is sent if the user closes a chat box",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -1031,7 +1024,7 @@
 
 
                     it("will clear any other chat status notifications",
                     it("will clear any other chat status notifications",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                            ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
@@ -1073,7 +1066,7 @@
 
 
                     it("will be shown if received",
                     it("will be shown if received",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched'], {},
+                            ['rosterGroupsFetched'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         await test_utils.waitForRoster(_converse, 'current', 3);
                         await test_utils.waitForRoster(_converse, 'current', 3);
@@ -1104,7 +1097,7 @@
 
 
             it("'/clear' can be used to clear messages in a conversation",
             it("'/clear' can be used to clear messages in a conversation",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1146,7 +1139,7 @@
 
 
             it("is incremented when the message is received and the window is not focused",
             it("is incremented when the message is received and the window is not focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
 
 
@@ -1185,7 +1178,7 @@
 
 
             it("is cleared when the window is focused",
             it("is cleared when the window is focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1200,7 +1193,7 @@
 
 
             it("is not incremented when the message is received and the window is focused",
             it("is not incremented when the message is received and the window is focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1226,7 +1219,7 @@
 
 
             it("is incremented from zero when chatbox was closed after viewing previously received messages and the window is not focused now",
             it("is incremented from zero when chatbox was closed after viewing previously received messages and the window is not focused now",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1276,7 +1269,7 @@
 
 
             it("is incremented when the message is received and ChatBoxView is scrolled up",
             it("is incremented when the message is received and ChatBoxView is scrolled up",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1293,7 +1286,7 @@
 
 
             it("is not incremented when the message is received and ChatBoxView is scrolled down",
             it("is not incremented when the message is received and ChatBoxView is scrolled down",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1309,7 +1302,7 @@
             }));
             }));
 
 
             it("is incremeted when message is received, chatbox is scrolled down and the window is not focused",
             it("is incremeted when message is received, chatbox is scrolled down and the window is not focused",
-                mock.initConverse(null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                mock.initConverse(['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1329,7 +1322,7 @@
 
 
             it("is incremeted when message is received, chatbox is scrolled up and the window is not focused",
             it("is incremeted when message is received, chatbox is scrolled up and the window is not focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1347,7 +1340,7 @@
 
 
             it("is cleared when ChatBoxView was scrolled down and the window become focused",
             it("is cleared when ChatBoxView was scrolled down and the window become focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1366,7 +1359,7 @@
 
 
             it("is not cleared when ChatBoxView was scrolled up and the windows become focused",
             it("is not cleared when ChatBoxView was scrolled up and the windows become focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1389,7 +1382,7 @@
 
 
             it("is updated when message is received and chatbox is scrolled up",
             it("is updated when message is received and chatbox is scrolled up",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1415,7 +1408,7 @@
 
 
             it("is updated when message is received and chatbox is minimized",
             it("is updated when message is received and chatbox is minimized",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1445,7 +1438,7 @@
 
 
             it("is cleared when chatbox is maximzied after receiving messages in minimized mode",
             it("is cleared when chatbox is maximzied after receiving messages in minimized mode",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1471,7 +1464,7 @@
 
 
             it("is cleared when unread messages are viewed which were received in scrolled-up chatbox",
             it("is cleared when unread messages are viewed which were received in scrolled-up chatbox",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -1496,7 +1489,7 @@
 
 
             it("is not cleared after user clicks on roster view when chatbox is already opened and scrolled up",
             it("is not cleared after user clicks on roster view when chatbox is already opened and scrolled up",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1523,7 +1516,7 @@
 
 
             it("is displayed when scrolled up chatbox is minimized after receiving unread messages",
             it("is displayed when scrolled up chatbox is minimized after receiving unread messages",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1551,7 +1544,7 @@
 
 
             it("is incremented when message is received and windows is not focused",
             it("is incremented when message is received and windows is not focused",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1576,7 +1569,7 @@
 
 
             it("will render Openstreetmap-URL from geo-URI",
             it("will render Openstreetmap-URL from geo-URI",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);

+ 10 - 10
spec/controlbox.js

@@ -12,7 +12,7 @@
 
 
         it("can be opened by clicking a DOM element with class 'toggle-controlbox'",
         it("can be opened by clicking a DOM element with class 'toggle-controlbox'",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 function (done, _converse) {
                 function (done, _converse) {
 
 
             // This spec will only pass if the controlbox is not currently
             // This spec will only pass if the controlbox is not currently
@@ -38,7 +38,7 @@
 
 
             it("can be used to add contact and it checks for case-sensivity",
             it("can be used to add contact and it checks for case-sensivity",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.api, "trigger").and.callThrough();
                 spyOn(_converse.api, "trigger").and.callThrough();
@@ -66,7 +66,7 @@
 
 
             it("shows the number of unread mentions received",
             it("shows the number of unread mentions received",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'all').openControlBox();
                 test_utils.createContacts(_converse, 'all').openControlBox();
@@ -116,7 +116,7 @@
 
 
             it("shows the user's chat status, which is online by default",
             it("shows the user's chat status, which is online by default",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -128,7 +128,7 @@
 
 
             it("can be used to set the current user's chat status",
             it("can be used to set the current user's chat status",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -157,7 +157,7 @@
 
 
             it("can be used to set a custom status message",
             it("can be used to set a custom status message",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -191,7 +191,7 @@
 
 
         it("opens up an add modal when you click on it",
         it("opens up an add modal when you click on it",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'all').openControlBox();
             test_utils.createContacts(_converse, 'all').openControlBox();
@@ -226,7 +226,7 @@
 
 
         it("can be configured to not provide search suggestions",
         it("can be configured to not provide search suggestions",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {'autocomplete_add_contact': false},
+                ['rosterGroupsFetched'], {'autocomplete_add_contact': false},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.openControlBox();
             test_utils.openControlBox();
@@ -257,7 +257,7 @@
 
 
         it("integrates with xhr_user_search_url to search for contacts",
         it("integrates with xhr_user_search_url to search for contacts",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'],
+                ['rosterGroupsFetched'],
                 { 'xhr_user_search_url': 'http://example.org/?' },
                 { 'xhr_user_search_url': 'http://example.org/?' },
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
@@ -314,7 +314,7 @@
 
 
         it("can be configured to not provide search suggestions for XHR search results",
         it("can be configured to not provide search suggestions for XHR search results",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'],
+                ['rosterGroupsFetched'],
                 { 'autocomplete_add_contact': false,
                 { 'autocomplete_add_contact': false,
                   'xhr_user_search_url': 'http://example.org/?' },
                   'xhr_user_search_url': 'http://example.org/?' },
                 async function (done, _converse) {
                 async function (done, _converse) {

+ 6 - 7
spec/converse.js

@@ -30,7 +30,7 @@
         describe("A chat state indication", function () {
         describe("A chat state indication", function () {
 
 
             it("are sent out when the client becomes or stops being idle",
             it("are sent out when the client becomes or stops being idle",
-                mock.initConverse(null, ['discoInitialized'], {}, (done, _converse) => {
+                mock.initConverse(['discoInitialized'], {}, (done, _converse) => {
 
 
                 spyOn(_converse, 'sendCSI').and.callThrough();
                 spyOn(_converse, 'sendCSI').and.callThrough();
                 let sent_stanza;
                 let sent_stanza;
@@ -215,7 +215,7 @@
 
 
             it("has a method 'get' which returns wrapped contacts",
             it("has a method 'get' which returns wrapped contacts",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['emojisInitialized'], {},
+                    ['emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -253,7 +253,7 @@
         describe("The \"chats\" API", function() {
         describe("The \"chats\" API", function() {
 
 
             it("has a method 'get' which returns the promise that resolves to a chat model", mock.initConverse(
             it("has a method 'get' which returns the promise that resolves to a chat model", mock.initConverse(
-                null, ['rosterInitialized', 'chatBoxesInitialized'], {},
+                ['rosterInitialized', 'chatBoxesInitialized'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -289,7 +289,7 @@
             }));
             }));
 
 
             it("has a method 'open' which opens and returns a promise that resolves to a chat model", mock.initConverse(
             it("has a method 'open' which opens and returns a promise that resolves to a chat model", mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesInitialized'], {},
+                ['rosterGroupsFetched', 'chatBoxesInitialized'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -321,9 +321,8 @@
         });
         });
 
 
         describe("The \"settings\" API", function() {
         describe("The \"settings\" API", function() {
-            it("has methods 'get' and 'set' to set configuration settings", mock.initConverse(
-                    null, null, {'play_sounds': true},
-                    (done, _converse) => {
+            it("has methods 'get' and 'set' to set configuration settings",
+                    mock.initConverse(null, {'play_sounds': true}, (done, _converse) => {
 
 
                 expect(_.keys(_converse.api.settings)).toEqual(["update", "get", "set"]);
                 expect(_.keys(_converse.api.settings)).toEqual(["update", "get", "set"]);
                 expect(_converse.api.settings.get("play_sounds")).toBe(true);
                 expect(_converse.api.settings.get("play_sounds")).toBe(true);

+ 2 - 2
spec/disco.js

@@ -16,7 +16,7 @@
 
 
             it("stores the features it receives",
             it("stores the features it receives",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['discoInitialized'], {},
+                    ['discoInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -179,7 +179,7 @@
         describe("Whenever converse.js discovers a new server feature", function () {
         describe("Whenever converse.js discovers a new server feature", function () {
            it("emits the serviceDiscovered event",
            it("emits the serviceDiscovered event",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['discoInitialized'], {},
+                    ['discoInitialized'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
                 sinon.spy(_converse.api, "trigger");
                 sinon.spy(_converse.api, "trigger");

+ 4 - 4
spec/emojis.js

@@ -14,7 +14,7 @@
 
 
             it("can be opened by clicking a button in the chat toolbar",
             it("can be opened by clicking a button in the chat toolbar",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -41,7 +41,7 @@
 
 
             it("is opened to autocomplete emojis in the textarea",
             it("is opened to autocomplete emojis in the textarea",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -109,7 +109,7 @@
 
 
             it("allows you to search for particular emojis",
             it("allows you to search for particular emojis",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -161,7 +161,7 @@
         describe("A Chat Message", function () {
         describe("A Chat Message", function () {
             it("will display larger if it's only emojis",
             it("will display larger if it's only emojis",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {'use_system_emojis': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {'use_system_emojis': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');

+ 1 - 1
spec/headline.js

@@ -40,7 +40,7 @@
         }));
         }));
 
 
         it("will open and display headline messages", mock.initConverse(
         it("will open and display headline messages", mock.initConverse(
-            null, ['rosterGroupsFetched'], {}, function (done, _converse) {
+            ['rosterGroupsFetched'], {}, function (done, _converse) {
 
 
             /* <message from='notify.example.com'
             /* <message from='notify.example.com'
              *          to='romeo@im.example.com'
              *          to='romeo@im.example.com'

+ 5 - 5
spec/http-file-upload.js

@@ -172,7 +172,7 @@
 
 
                 it("does not appear in private chats",
                 it("does not appear in private chats",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['emojisInitialized'], {},
+                        ['emojisInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 3);
                     await test_utils.waitForRoster(_converse, 'current', 3);
@@ -191,7 +191,7 @@
                 }));
                 }));
 
 
                 it("does not appear in MUC chats", mock.initConverse(
                 it("does not appear in MUC chats", mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async (done, _converse) => {
                         async (done, _converse) => {
 
 
                     await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                     await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -233,7 +233,7 @@
                 }));
                 }));
 
 
                 it("appears in MUC chats", mock.initConverse(
                 it("appears in MUC chats", mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async (done, _converse) => {
                         async (done, _converse) => {
 
 
                     await test_utils.waitUntilDiscoConfirmed(
                     await test_utils.waitUntilDiscoConfirmed(
@@ -464,7 +464,7 @@
 
 
                     it("shows an error message if the file is too large",
                     it("shows an error message if the file is too large",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['emojisInitialized'], {},
+                            ['emojisInitialized'], {},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         const IQ_stanzas = _converse.connection.IQ_stanzas;
                         const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -587,7 +587,7 @@
             describe("While a file is being uploaded", function () {
             describe("While a file is being uploaded", function () {
 
 
                 it("shows a progress bar", mock.initConverse(
                 it("shows a progress bar", mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                     await test_utils.waitUntilDiscoConfirmed(
                     await test_utils.waitUntilDiscoConfirmed(

+ 2 - 2
spec/login.js

@@ -8,7 +8,7 @@
 
 
         it("contains a checkbox to indicate whether the computer is trusted or not",
         it("contains a checkbox to indicate whether the computer is trusted or not",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: false },
                   allow_registration: false },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -42,7 +42,7 @@
 
 
         it("checkbox can be set to false by default",
         it("checkbox can be set to false by default",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   trusted: false,
                   trusted: false,
                   allow_registration: false },
                   allow_registration: false },

+ 20 - 52
spec/mam.js

@@ -17,9 +17,7 @@
         describe("The XEP-0313 Archive", function () {
         describe("The XEP-0313 Archive", function () {
 
 
             it("is queried when the user enters a new MUC",
             it("is queried when the user enters a new MUC",
-                mock.initConverse(
-                    null, ['discoInitialized'], {'archived_messages_page_size': 2},
-                    async function (done, _converse) {
+                    mock.initConverse(['discoInitialized'], {'archived_messages_page_size': 2}, async function (done, _converse) {
 
 
                 spyOn(_converse.ChatBox.prototype, 'fetchArchivedMessages').and.callThrough();
                 spyOn(_converse.ChatBox.prototype, 'fetchArchivedMessages').and.callThrough();
                 const sent_IQs = _converse.connection.IQ_stanzas;
                 const sent_IQs = _converse.connection.IQ_stanzas;
@@ -211,7 +209,7 @@
 
 
                 it("is discarded if it doesn't come from the right sender",
                 it("is discarded if it doesn't come from the right sender",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['discoInitialized'], {},
+                        ['discoInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 1);
                     await test_utils.waitForRoster(_converse, 'current', 1);
@@ -267,7 +265,7 @@
 
 
                 it("updates the is_archived value of an already cached version",
                 it("updates the is_archived value of an already cached version",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['discoInitialized'], {},
+                        ['discoInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.openAndEnterChatRoom(_converse, 'trek-radio@conference.lightwitch.org', 'romeo');
                     await test_utils.openAndEnterChatRoom(_converse, 'trek-radio@conference.lightwitch.org', 'romeo');
@@ -315,7 +313,7 @@
 
 
                 it("isn't shown as duplicate by comparing its stanza id or archive id",
                 it("isn't shown as duplicate by comparing its stanza id or archive id",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['discoInitialized'], {},
+                        ['discoInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.openAndEnterChatRoom(_converse, 'trek-radio@conference.lightwitch.org', 'jcbrand');
                     await test_utils.openAndEnterChatRoom(_converse, 'trek-radio@conference.lightwitch.org', 'jcbrand');
@@ -354,7 +352,7 @@
 
 
                 it("isn't shown as duplicate by comparing only the archive id",
                 it("isn't shown as duplicate by comparing only the archive id",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['discoInitialized'], {},
+                        ['discoInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.openAndEnterChatRoom(_converse, 'discuss@conference.conversejs.org', 'romeo');
                     await test_utils.openAndEnterChatRoom(_converse, 'discuss@conference.conversejs.org', 'romeo');
@@ -407,9 +405,7 @@
         describe("The archive.query API", function () {
         describe("The archive.query API", function () {
 
 
            it("can be used to query for all archived messages",
            it("can be used to query for all archived messages",
-                mock.initConverse(
-                    null, ['discoInitialized'], {},
-                    async function (done, _converse) {
+                    mock.initConverse(['discoInitialized'], {}, async function (done, _converse) {
 
 
                 const sendIQ = _converse.connection.sendIQ;
                 const sendIQ = _converse.connection.sendIQ;
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
@@ -427,9 +423,7 @@
             }));
             }));
 
 
            it("can be used to query for all messages to/from a particular JID",
            it("can be used to query for all messages to/from a particular JID",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -458,9 +452,7 @@
             }));
             }));
 
 
            it("can be used to query for archived messages from a chat room",
            it("can be used to query for archived messages from a chat room",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 const room_jid = 'coven@chat.shakespeare.lit';
                 const room_jid = 'coven@chat.shakespeare.lit';
                 _converse.api.archive.query({'with': room_jid, 'groupchat': true});
                 _converse.api.archive.query({'with': room_jid, 'groupchat': true});
@@ -485,9 +477,7 @@
            }));
            }));
 
 
             it("checks whether returned MAM messages from a MUC room are from the right JID",
             it("checks whether returned MAM messages from a MUC room are from the right JID",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 const room_jid = 'coven@chat.shakespeare.lit';
                 const room_jid = 'coven@chat.shakespeare.lit';
                 const promise = _converse.api.archive.query({'with': room_jid, 'groupchat': true, 'max':'10'});
                 const promise = _converse.api.archive.query({'with': room_jid, 'groupchat': true, 'max':'10'});
@@ -556,9 +546,7 @@
            }));
            }));
 
 
            it("can be used to query for all messages in a certain timespan",
            it("can be used to query for all messages in a certain timespan",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -596,9 +584,7 @@
            }));
            }));
 
 
            it("throws a TypeError if an invalid date is provided",
            it("throws a TypeError if an invalid date is provided",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 try {
                 try {
@@ -610,9 +596,7 @@
            }));
            }));
 
 
            it("can be used to query for all messages after a certain time",
            it("can be used to query for all messages after a certain time",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -646,9 +630,7 @@
            }));
            }));
 
 
            it("can be used to query for a limited set of results",
            it("can be used to query for a limited set of results",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -682,9 +664,7 @@
            }));
            }));
 
 
            it("can be used to page through results",
            it("can be used to page through results",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -722,9 +702,7 @@
            }));
            }));
 
 
            it("accepts \"before\" with an empty string as value to reverse the order",
            it("accepts \"before\" with an empty string as value to reverse the order",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -754,9 +732,7 @@
            }));
            }));
 
 
            it("accepts a _converse.RSM object for the query options",
            it("accepts a _converse.RSM object for the query options",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -798,9 +774,7 @@
            }));
            }));
 
 
            it("returns an object which includes the messages and a _converse.RSM object",
            it("returns an object which includes the messages and a _converse.RSM object",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
                 let sent_stanza, IQ_id;
                 let sent_stanza, IQ_id;
@@ -886,9 +860,7 @@
         describe("The default preference", function () {
         describe("The default preference", function () {
 
 
             it("is set once server support for MAM has been confirmed",
             it("is set once server support for MAM has been confirmed",
-                mock.initConverse(
-                    null, [], {},
-                    async function (done, _converse) {
+                    mock.initConverse([], {}, async function (done, _converse) {
 
 
                 const entity = await _converse.api.disco.entities.get(_converse.domain);
                 const entity = await _converse.api.disco.entities.get(_converse.domain);
                 let  sent_stanza, IQ_id;
                 let  sent_stanza, IQ_id;
@@ -969,9 +941,7 @@
         describe("A Chatbox", function () {
         describe("A Chatbox", function () {
 
 
             it("will fetch archived messages once it's opened",
             it("will fetch archived messages once it's opened",
-                mock.initConverse(
-                    null, ['discoInitialized'], {},
-                    async function (done, _converse) {
+                    mock.initConverse(['discoInitialized'], {}, async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
                 const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
@@ -1031,9 +1001,7 @@
             }));
             }));
 
 
             it("will show an error message if the MAM query times out",
             it("will show an error message if the MAM query times out",
-                mock.initConverse(
-                    null, ['discoInitialized'], {},
-                    async function (done, _converse) {
+                    mock.initConverse(['discoInitialized'], {}, async function (done, _converse) {
 
 
                 const sendIQ = _converse.connection.sendIQ;
                 const sendIQ = _converse.connection.sendIQ;
 
 

+ 38 - 38
spec/messages.js

@@ -14,7 +14,7 @@
 
 
         it("is rejected if it's an unencapsulated forwarded message",
         it("is rejected if it's an unencapsulated forwarded message",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current', 2);
             await test_utils.waitForRoster(_converse, 'current', 2);
@@ -57,7 +57,7 @@
 
 
         it("can be sent as a correction by clicking the pencil icon",
         it("can be sent as a correction by clicking the pencil icon",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);
@@ -185,7 +185,7 @@
 
 
         it("can be sent as a correction by using the up arrow",
         it("can be sent as a correction by using the up arrow",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);
@@ -344,7 +344,7 @@
 
 
         it("can be received out of order, and will still be displayed in the right order",
         it("can be received out of order, and will still be displayed in the right order",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -510,7 +510,7 @@
 
 
         it("is ignored if it's a malformed headline message",
         it("is ignored if it's a malformed headline message",
         mock.initConverse(
         mock.initConverse(
-            null, ['rosterGroupsFetched'], {},
+            ['rosterGroupsFetched'], {},
             async function (done, _converse) {
             async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -546,7 +546,7 @@
 
 
         it("can be a carbon message, as defined in XEP-0280",
         it("can be a carbon message, as defined in XEP-0280",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const include_nick = false;
             const include_nick = false;
@@ -598,7 +598,7 @@
 
 
         it("can be a carbon message that this user sent from a different client, as defined in XEP-0280",
         it("can be a carbon message that this user sent from a different client, as defined in XEP-0280",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
             await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
@@ -644,7 +644,7 @@
 
 
         it("will be discarded if it's a malicious message meant to look like a carbon copy",
         it("will be discarded if it's a malicious message meant to look like a carbon copy",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -690,7 +690,7 @@
 
 
         it("received for a minimized chat box will increment a counter on its header",
         it("received for a minimized chat box will increment a counter on its header",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             if (_converse.view_mode === 'fullscreen') {
             if (_converse.view_mode === 'fullscreen') {
@@ -752,7 +752,7 @@
 
 
         it("will indicate when it has a time difference of more than a day between it and its predecessor",
         it("will indicate when it has a time difference of more than a day between it and its predecessor",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const include_nick = false;
             const include_nick = false;
@@ -845,7 +845,7 @@
 
 
         it("is sanitized to prevent Javascript injection attacks",
         it("is sanitized to prevent Javascript injection attacks",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -865,7 +865,7 @@
 
 
         it("can contain hyperlinks, which will be clickable",
         it("can contain hyperlinks, which will be clickable",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -887,7 +887,7 @@
 
 
         it("will have properly escaped URLs",
         it("will have properly escaped URLs",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -947,7 +947,7 @@
 
 
         it("will render newlines",
         it("will render newlines",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -986,7 +986,7 @@
 
 
         it("will render images from their URLs",
         it("will render images from their URLs",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -1034,7 +1034,7 @@
 
 
         it("will render the message time as configured",
         it("will render the message time as configured",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -1060,7 +1060,7 @@
 
 
         it("will be correctly identified and rendered as a followup message",
         it("will be correctly identified and rendered as a followup message",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                ['rosterGroupsFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -1224,7 +1224,7 @@
 
 
         it("received may emit a message delivery receipt",
         it("received may emit a message delivery receipt",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -1251,7 +1251,7 @@
 
 
         it("carbon received does not emit a message delivery receipt",
         it("carbon received does not emit a message delivery receipt",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);
             const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
             const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
@@ -1283,7 +1283,7 @@
 
 
             it("can have its delivery acknowledged by a receipt",
             it("can have its delivery acknowledged by a receipt",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1340,7 +1340,7 @@
 
 
             it("will appear inside the chatbox it was sent from",
             it("will appear inside the chatbox it was sent from",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1362,7 +1362,7 @@
 
 
             it("will be trimmed of leading and trailing whitespace",
             it("will be trimmed of leading and trailing whitespace",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1383,7 +1383,7 @@
 
 
             it("will open a chatbox and be displayed inside it",
             it("will open a chatbox and be displayed inside it",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const include_nick = false;
                 const include_nick = false;
@@ -1429,7 +1429,7 @@
 
 
             it("will be trimmed of leading and trailing whitespace",
             it("will be trimmed of leading and trailing whitespace",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1, false);
                 await test_utils.waitForRoster(_converse, 'current', 1, false);
@@ -1458,7 +1458,7 @@
 
 
             it("can be replaced with a correction",
             it("can be replaced with a correction",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1523,7 +1523,7 @@
 
 
                 it("the VCard for that user is fetched and the chatbox updated with the results",
                 it("the VCard for that user is fetched and the chatbox updated with the results",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     _converse.api.trigger('rosterContactsFetched');
                     _converse.api.trigger('rosterContactsFetched');
@@ -1582,7 +1582,7 @@
 
 
                 it("will open a chatbox and be displayed inside it if allow_non_roster_messaging is true",
                 it("will open a chatbox and be displayed inside it if allow_non_roster_messaging is true",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     _converse.allow_non_roster_messaging = false;
                     _converse.allow_non_roster_messaging = false;
@@ -1643,7 +1643,7 @@
 
 
                 it("will have the error message displayed after itself",
                 it("will have the error message displayed after itself",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.waitForRoster(_converse, 'current', 1);
                     await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1761,7 +1761,7 @@
 
 
                 it("will not show to the user an error message for a CSI message",
                 it("will not show to the user an error message for a CSI message",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     // See #1317
                     // See #1317
@@ -1800,7 +1800,7 @@
 
 
             it("will cause the chat area to be scrolled down only if it was at the bottom originally",
             it("will cause the chat area to be scrolled down only if it was at the bottom originally",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1854,7 +1854,7 @@
 
 
             it("is ignored if it's intended for a different resource and filter_by_resource is set to true",
             it("is ignored if it's intended for a different resource and filter_by_resource is set to true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current');
                 await test_utils.waitForRoster(_converse, 'current');
@@ -1904,7 +1904,7 @@
 
 
             it("will render audio from oob mp3 URLs",
             it("will render audio from oob mp3 URLs",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -1956,7 +1956,7 @@
 
 
             it("will render video from oob mp4 URLs",
             it("will render video from oob mp4 URLs",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -2005,7 +2005,7 @@
 
 
             it("will render download links for files from oob URLs",
             it("will render download links for files from oob URLs",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitForRoster(_converse, 'current', 1);
                 await test_utils.waitForRoster(_converse, 'current', 1);
@@ -2035,7 +2035,7 @@
 
 
             it("will render images from oob URLs",
             it("will render images from oob URLs",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const base_url = 'https://conversejs.org';
                 const base_url = 'https://conversejs.org';
@@ -2074,7 +2074,7 @@
 
 
         it("is sent when a markable message is received from a roster contact",
         it("is sent when a markable message is received from a roster contact",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);
@@ -2107,7 +2107,7 @@
 
 
         it("is not sent when a markable message is received from someone not on the roster",
         it("is not sent when a markable message is received from someone not on the roster",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'emojisInitialized'], {'allow_non_roster_messaging': true},
+                ['rosterGroupsFetched', 'emojisInitialized'], {'allow_non_roster_messaging': true},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             _converse.api.trigger('rosterContactsFetched');
             _converse.api.trigger('rosterContactsFetched');
@@ -2143,7 +2143,7 @@
 
 
         it("is ignored if it's a carbon copy of one that I sent from a different client",
         it("is ignored if it's a carbon copy of one that I sent from a different client",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);

+ 4 - 4
spec/minchats.js

@@ -10,7 +10,7 @@
 
 
         it("shows chats that have been minimized",
         it("shows chats that have been minimized",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'current');
             test_utils.createContacts(_converse, 'current');
@@ -45,7 +45,7 @@
 
 
         it("can be toggled to hide or show minimized chats",
         it("can be toggled to hide or show minimized chats",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'current');
             test_utils.createContacts(_converse, 'current');
@@ -73,7 +73,7 @@
 
 
         it("shows the number messages received to minimized chats",
         it("shows the number messages received to minimized chats",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 function (done, _converse) {
                 function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'current');
             test_utils.createContacts(_converse, 'current');
@@ -152,7 +152,7 @@
 
 
         it("shows the number messages received to minimized groupchats",
         it("shows the number messages received to minimized groupchats",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'kitchen@conference.shakespeare.lit';
             const muc_jid = 'kitchen@conference.shakespeare.lit';

+ 2 - 2
spec/modtools.js

@@ -11,7 +11,7 @@
 
 
         it("allows you to set affiliations and roles",
         it("allows you to set affiliations and roles",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             spyOn(_converse.ChatRoomView.prototype, 'showModeratorToolsModal').and.callThrough();
             spyOn(_converse.ChatRoomView.prototype, 'showModeratorToolsModal').and.callThrough();
@@ -138,7 +138,7 @@
 
 
         it("shows an error message if a particular affiliation list may not be retrieved",
         it("shows an error message if a particular affiliation list may not be retrieved",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             spyOn(_converse.ChatRoomView.prototype, 'showModeratorToolsModal').and.callThrough();
             spyOn(_converse.ChatRoomView.prototype, 'showModeratorToolsModal').and.callThrough();

+ 78 - 78
spec/muc.js

@@ -18,7 +18,7 @@
 
 
             it("has a method 'close' which closes rooms by JID or all rooms when called with no arguments",
             it("has a method 'close' which closes rooms by JID or all rooms when called with no arguments",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -49,7 +49,7 @@
 
 
             it("has a method 'get' which returns a wrapped groupchat (if it exists)",
             it("has a method 'get' which returns a wrapped groupchat (if it exists)",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'current');
                 test_utils.createContacts(_converse, 'current');
@@ -95,7 +95,7 @@
 
 
             it("has a method 'open' which opens (optionally configures) and returns a wrapped chat box",
             it("has a method 'open' which opens (optionally configures) and returns a wrapped chat box",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 // Mock 'getRoomFeatures', otherwise the room won't be
                 // Mock 'getRoomFeatures', otherwise the room won't be
@@ -264,7 +264,7 @@
 
 
             it("will be created when muc_instant_rooms is set to true",
             it("will be created when muc_instant_rooms is set to true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -350,7 +350,7 @@
 
 
                 it("will fetch the member list if muc_fetch_members is true",
                 it("will fetch the member list if muc_fetch_members is true",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {'muc_fetch_members': true},
+                        ['rosterGroupsFetched'], {'muc_fetch_members': true},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     const sent_IQs = _converse.connection.IQ_stanzas;
                     const sent_IQs = _converse.connection.IQ_stanzas;
@@ -390,7 +390,7 @@
 
 
                     it("gracefully handles being forbidden from fetching the lists for certain affiliations",
                     it("gracefully handles being forbidden from fetching the lists for certain affiliations",
                         mock.initConverse(
                         mock.initConverse(
-                            null, ['rosterGroupsFetched'], {'muc_fetch_members': true},
+                            ['rosterGroupsFetched'], {'muc_fetch_members': true},
                             async function (done, _converse) {
                             async function (done, _converse) {
 
 
                         const sent_IQs = _converse.connection.IQ_stanzas;
                         const sent_IQs = _converse.connection.IQ_stanzas;
@@ -473,7 +473,7 @@
 
 
             it("clears cached messages when it gets closed and clear_messages_on_reconnection is true",
             it("clears cached messages when it gets closed and clear_messages_on_reconnection is true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'clear_messages_on_reconnection': true},
+                    ['rosterGroupsFetched'], {'clear_messages_on_reconnection': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -501,7 +501,7 @@
 
 
             it("is opened when an xmpp: URI is clicked inside another groupchat",
             it("is opened when an xmpp: URI is clicked inside another groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'current');
                 test_utils.createContacts(_converse, 'current');
@@ -530,7 +530,7 @@
 
 
             it("shows a notification if it's not anonymous",
             it("shows a notification if it's not anonymous",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'coven@chat.shakespeare.lit';
                 const muc_jid = 'coven@chat.shakespeare.lit';
@@ -576,7 +576,7 @@
 
 
             it("shows join/leave messages when users enter or exit a groupchat",
             it("shows join/leave messages when users enter or exit a groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoom(_converse, "coven", 'chat.shakespeare.lit', 'some1');
                 await test_utils.openChatRoom(_converse, "coven", 'chat.shakespeare.lit', 'some1');
@@ -851,7 +851,7 @@
 
 
             it("combines subsequent join/leave messages when users enter or exit a groupchat",
             it("combines subsequent join/leave messages when users enter or exit a groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'romeo')
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'romeo')
@@ -1003,7 +1003,7 @@
 
 
             it("doesn't show the disconnection status when muc_show_join_leave_status is false",
             it("doesn't show the disconnection status when muc_show_join_leave_status is false",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_show_join_leave_status': false},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_show_join_leave_status': false},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'some1');
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'some1');
@@ -1078,7 +1078,7 @@
 
 
             it("role-change messages that follow a MUC leave are left out",
             it("role-change messages that follow a MUC leave are left out",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 // See https://github.com/conversejs/converse.js/issues/1259
                 // See https://github.com/conversejs/converse.js/issues/1259
@@ -1140,7 +1140,7 @@
 
 
             it("shows a new day indicator if a join/leave message is received on a new day",
             it("shows a new day indicator if a join/leave message is received on a new day",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'coven@chat.shakespeare.lit', 'romeo');
@@ -1302,7 +1302,7 @@
 
 
             it("supports the /me command",
             it("supports the /me command",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
                 await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
@@ -1342,7 +1342,7 @@
 
 
             it("can be configured if you're its owner",
             it("can be configured if you're its owner",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let sent_IQ, IQ_id;
                 let sent_IQ, IQ_id;
@@ -1562,7 +1562,7 @@
 
 
             it("shows all members even if they're not currently present in the groupchat",
             it("shows all members even if they're not currently present in the groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit'
                 const muc_jid = 'lounge@montague.lit'
@@ -1650,7 +1650,7 @@
 
 
             it("shows users currently present in the groupchat",
             it("shows users currently present in the groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -1705,7 +1705,7 @@
             }));
             }));
 
 
             it("escapes occupant nicknames when rendering them, to avoid JS-injection attacks",
             it("escapes occupant nicknames when rendering them, to avoid JS-injection attacks",
-                mock.initConverse(null, ['rosterGroupsFetched'], {},
+                mock.initConverse(['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -1738,7 +1738,7 @@
 
 
             it("indicates moderators and visitors by means of a special css class and tooltip",
             it("indicates moderators and visitors by means of a special css class and tooltip",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'view_mode': 'fullscreen'},
+                    ['rosterGroupsFetched'], {'view_mode': 'fullscreen'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -1804,7 +1804,7 @@
 
 
             it("properly handles notification that a room has been destroyed",
             it("properly handles notification that a room has been destroyed",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoomViaModal(_converse, 'problematic@muc.montague.lit', 'romeo')
                 await test_utils.openChatRoomViaModal(_converse, 'problematic@muc.montague.lit', 'romeo')
@@ -1835,7 +1835,7 @@
 
 
             it("will use the user's reserved nickname, if it exists",
             it("will use the user's reserved nickname, if it exists",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -1930,7 +1930,7 @@
 
 
             it("allows the user to invite their roster contacts to enter the groupchat",
             it("allows the user to invite their roster contacts to enter the groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'current'); // We need roster contacts, so that we have someone to invite
                 test_utils.createContacts(_converse, 'current'); // We need roster contacts, so that we have someone to invite
@@ -1993,7 +1993,7 @@
 
 
             it("can be joined automatically, based upon a received invite",
             it("can be joined automatically, based upon a received invite",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'current'); // We need roster contacts, who can invite us
                 test_utils.createContacts(_converse, 'current'); // We need roster contacts, who can invite us
@@ -2026,7 +2026,7 @@
 
 
             it("shows received groupchat messages",
             it("shows received groupchat messages",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const text = 'This is a received message';
                 const text = 'This is a received message';
@@ -2059,7 +2059,7 @@
 
 
             it("shows sent groupchat messages",
             it("shows sent groupchat messages",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -2106,7 +2106,7 @@
 
 
             it("will cause the chat area to be scrolled down only if it was at the bottom already",
             it("will cause the chat area to be scrolled down only if it was at the bottom already",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 var message = 'This message is received while the chat area is scrolled up';
                 var message = 'This message is received while the chat area is scrolled up';
@@ -2149,7 +2149,7 @@
 
 
             it("shows the room topic in the header",
             it("shows the room topic in the header",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'jdev@conference.jabber.org', 'jc');
                 await test_utils.openAndEnterChatRoom(_converse, 'jdev@conference.jabber.org', 'jc');
@@ -2185,7 +2185,7 @@
 
 
             it("escapes the subject before rendering it, to avoid JS-injection attacks",
             it("escapes the subject before rendering it, to avoid JS-injection attacks",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'jdev@conference.jabber.org', 'jc');
                 await test_utils.openAndEnterChatRoom(_converse, 'jdev@conference.jabber.org', 'jc');
@@ -2204,7 +2204,7 @@
 
 
             it("reconnects when no-acceptable error is returned when sending a message",
             it("reconnects when no-acceptable error is returned when sending a message",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'coven@chat.shakespeare.lit';
                 const muc_jid = 'coven@chat.shakespeare.lit';
@@ -2258,7 +2258,7 @@
 
 
             it("informs users if the room configuration has changed",
             it("informs users if the room configuration has changed",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'coven@chat.shakespeare.lit';
                 const muc_jid = 'coven@chat.shakespeare.lit';
@@ -2286,7 +2286,7 @@
 
 
             it("informs users if their nicknames have been changed.",
             it("informs users if their nicknames have been changed.",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 /* The service then sends two presence stanzas to the full JID
                 /* The service then sends two presence stanzas to the full JID
@@ -2397,7 +2397,7 @@
 
 
             it("queries for the groupchat information before attempting to join the user",
             it("queries for the groupchat information before attempting to join the user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
                 const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -2470,7 +2470,7 @@
 
 
             it("updates the shown features when the groupchat configuration has changed",
             it("updates the shown features when the groupchat configuration has changed",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'view_mode': 'fullscreen'},
+                    ['rosterGroupsFetched'], {'view_mode': 'fullscreen'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let features = [
                 let features = [
@@ -2658,7 +2658,7 @@
 
 
             it("indicates when a room is no longer anonymous",
             it("indicates when a room is no longer anonymous",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let IQ_id;
                 let IQ_id;
@@ -2707,7 +2707,7 @@
 
 
             it("informs users if they have been kicked out of the groupchat",
             it("informs users if they have been kicked out of the groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 /*  <presence
                 /*  <presence
@@ -2761,7 +2761,7 @@
 
 
             it("can be saved to, and retrieved from, browserStorage",
             it("can be saved to, and retrieved from, browserStorage",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
@@ -2793,7 +2793,7 @@
 
 
             it("can be minimized by clicking a DOM element with class 'toggle-chatbox-button'",
             it("can be minimized by clicking a DOM element with class 'toggle-chatbox-button'",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
@@ -2824,7 +2824,7 @@
 
 
             it("can be closed again by clicking a DOM element with class 'close-chatbox-button'",
             it("can be closed again by clicking a DOM element with class 'close-chatbox-button'",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
                 await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
@@ -2842,7 +2842,7 @@
 
 
             it("informs users of role and affiliation changes",
             it("informs users of role and affiliation changes",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -2915,7 +2915,7 @@
 
 
             it("takes /help to show the available commands",
             it("takes /help to show the available commands",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(window, 'confirm').and.callFake(() => true);
                 spyOn(window, 'confirm').and.callFake(() => true);
@@ -2990,7 +2990,7 @@
 
 
             it("takes /help to show the available commands and commands can be disabled by config",
             it("takes /help to show the available commands and commands can be disabled by config",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {muc_disable_slash_commands: ['mute', 'voice']},
+                    ['rosterGroupsFetched'], {muc_disable_slash_commands: ['mute', 'voice']},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -3028,7 +3028,7 @@
 
 
             it("takes /member to make an occupant a member",
             it("takes /member to make an occupant a member",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let iq_stanza;
                 let iq_stanza;
@@ -3173,7 +3173,7 @@
 
 
             it("takes /topic to set the groupchat topic",
             it("takes /topic to set the groupchat topic",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -3225,7 +3225,7 @@
 
 
             it("takes /clear to clear messages",
             it("takes /clear to clear messages",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                 await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -3244,7 +3244,7 @@
 
 
             it("takes /owner to make a user an owner",
             it("takes /owner to make a user an owner",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let sent_IQ, IQ_id;
                 let sent_IQ, IQ_id;
@@ -3332,7 +3332,7 @@
 
 
             it("takes /ban to ban a user",
             it("takes /ban to ban a user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let sent_IQ, IQ_id;
                 let sent_IQ, IQ_id;
@@ -3432,7 +3432,7 @@
 
 
             it("takes a /kick command to kick a user",
             it("takes a /kick command to kick a user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let sent_IQ, IQ_id;
                 let sent_IQ, IQ_id;
@@ -3524,7 +3524,7 @@
 
 
             it("takes /op and /deop to make a user a moderator or not",
             it("takes /op and /deop to make a user a moderator or not",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -3667,7 +3667,7 @@
 
 
             it("takes /mute and /voice to mute and unmute a user",
             it("takes /mute and /voice to mute and unmute a user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -3811,7 +3811,7 @@
 
 
             it("takes /destroy to destroy a muc",
             it("takes /destroy to destroy a muc",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -3863,7 +3863,7 @@
 
 
             it("will use the nickname set in the global settings if the user doesn't have a VCard nickname",
             it("will use the nickname set in the global settings if the user doesn't have a VCard nickname",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'nickname': 'Benedict-Cucumberpatch'},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'nickname': 'Benedict-Cucumberpatch'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoomViaModal(_converse, 'roomy@muc.montague.lit');
                 await test_utils.openChatRoomViaModal(_converse, 'roomy@muc.montague.lit');
@@ -3874,7 +3874,7 @@
 
 
             it("will show an error message if the groupchat requires a password",
             it("will show an error message if the groupchat requires a password",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'protected';
                 const muc_jid = 'protected';
@@ -3910,7 +3910,7 @@
 
 
             it("will show an error message if the groupchat is members-only and the user not included",
             it("will show an error message if the groupchat is members-only and the user not included",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'members-only@muc.montague.lit'
                 const muc_jid = 'members-only@muc.montague.lit'
@@ -3959,7 +3959,7 @@
 
 
             it("will show an error message if the user has been banned",
             it("will show an error message if the user has been banned",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'off-limits@muc.montague.lit'
                 const muc_jid = 'off-limits@muc.montague.lit'
@@ -4005,7 +4005,7 @@
 
 
             it("will render a nickname form if a nickname conflict happens and muc_nickname_from_jid=false",
             it("will render a nickname form if a nickname conflict happens and muc_nickname_from_jid=false",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'conflicted@muc.montague.lit';
                 const muc_jid = 'conflicted@muc.montague.lit';
@@ -4034,7 +4034,7 @@
 
 
             it("will automatically choose a new nickname if a nickname conflict happens and muc_nickname_from_jid=true",
             it("will automatically choose a new nickname if a nickname conflict happens and muc_nickname_from_jid=true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'conflicting@muc.montague.lit'
                 const muc_jid = 'conflicting@muc.montague.lit'
@@ -4095,7 +4095,7 @@
 
 
             it("will show an error message if the user is not allowed to have created the groupchat",
             it("will show an error message if the user is not allowed to have created the groupchat",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'impermissable@muc.montague.lit'
                 const muc_jid = 'impermissable@muc.montague.lit'
@@ -4136,7 +4136,7 @@
 
 
             it("will show an error message if the user's nickname doesn't conform to groupchat policy",
             it("will show an error message if the user's nickname doesn't conform to groupchat policy",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'conformist@muc.montague.lit'
                 const muc_jid = 'conformist@muc.montague.lit'
@@ -4178,7 +4178,7 @@
 
 
             it("will show an error message if the groupchat doesn't yet exist",
             it("will show an error message if the groupchat doesn't yet exist",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'nonexistent@muc.montague.lit'
                 const muc_jid = 'nonexistent@muc.montague.lit'
@@ -4220,7 +4220,7 @@
 
 
             it("will show an error message if the groupchat has reached its maximum number of participants",
             it("will show an error message if the groupchat has reached its maximum number of participants",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'maxed-out@muc.montague.lit'
                 const muc_jid = 'maxed-out@muc.montague.lit'
@@ -4265,7 +4265,7 @@
 
 
             it("will first be added to the member list if the groupchat is members only",
             it("will first be added to the member list if the groupchat is members only",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.ChatRoomOccupants.prototype, 'fetchMembers').and.callThrough();
                 spyOn(_converse.ChatRoomOccupants.prototype, 'fetchMembers').and.callThrough();
@@ -4410,7 +4410,7 @@
 
 
             it("can be computed in various ways",
             it("can be computed in various ways",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await test_utils.openChatRoom(_converse, 'coven', 'chat.shakespeare.lit', 'romeo');
                 await test_utils.openChatRoom(_converse, 'coven', 'chat.shakespeare.lit', 'romeo');
@@ -4476,7 +4476,7 @@
 
 
             it("can be opened from a link in the \"Groupchats\" section of the controlbox",
             it("can be opened from a link in the \"Groupchats\" section of the controlbox",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4518,7 +4518,7 @@
 
 
             it("doesn't show the nickname field if locked_muc_nickname is true",
             it("doesn't show the nickname field if locked_muc_nickname is true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'locked_muc_nickname': true, 'muc_nickname_from_jid': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'locked_muc_nickname': true, 'muc_nickname_from_jid': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4541,7 +4541,7 @@
 
 
             it("uses the JID node if muc_nickname_from_jid is set to true",
             it("uses the JID node if muc_nickname_from_jid is set to true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_nickname_from_jid': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_nickname_from_jid': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4560,7 +4560,7 @@
 
 
             it("uses the nickname passed in to converse.initialize",
             it("uses the nickname passed in to converse.initialize",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'nickname': 'st.nick'},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'nickname': 'st.nick'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4579,7 +4579,7 @@
 
 
             it("doesn't require the domain when muc_domain is set",
             it("doesn't require the domain when muc_domain is set",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_domain': 'muc.example.org'},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_domain': 'muc.example.org'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4619,7 +4619,7 @@
 
 
             it("only uses the muc_domain is locked_muc_domain is true",
             it("only uses the muc_domain is locked_muc_domain is true",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_domain': 'muc.example.org', 'locked_muc_domain': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'muc_domain': 'muc.example.org', 'locked_muc_domain': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4661,7 +4661,7 @@
 
 
             it("can be opened from a link in the \"Groupchats\" section of the controlbox",
             it("can be opened from a link in the \"Groupchats\" section of the controlbox",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4737,7 +4737,7 @@
 
 
             it("is pre-filled with the muc_domain",
             it("is pre-filled with the muc_domain",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'],
+                    ['rosterGroupsFetched', 'chatBoxesFetched'],
                     {'muc_domain': 'muc.example.org'},
                     {'muc_domain': 'muc.example.org'},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
@@ -4754,7 +4754,7 @@
 
 
             it("doesn't let you set the MUC domain if it's locked",
             it("doesn't let you set the MUC domain if it's locked",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'],
+                    ['rosterGroupsFetched', 'chatBoxesFetched'],
                     {'muc_domain': 'chat.shakespeare.lit', 'locked_muc_domain': true},
                     {'muc_domain': 'chat.shakespeare.lit', 'locked_muc_domain': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
@@ -4805,7 +4805,7 @@
 
 
             it("shows the number of unread mentions received",
             it("shows the number of unread mentions received",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'emojisInitialized'], {'allow_bookmarks': false},
+                    ['rosterGroupsFetched', 'emojisInitialized'], {'allow_bookmarks': false},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -4856,7 +4856,7 @@
 
 
             it("is is not sent out to a MUC if the user is a visitor in a moderated room",
             it("is is not sent out to a MUC if the user is a visitor in a moderated room",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.ChatRoom.prototype, 'sendChatState').and.callThrough();
                 spyOn(_converse.ChatRoom.prototype, 'sendChatState').and.callThrough();
@@ -4910,7 +4910,7 @@
 
 
                 it("will be shown if received",
                 it("will be shown if received",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
+                        ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     const muc_jid = 'coven@chat.shakespeare.lit';
                     const muc_jid = 'coven@chat.shakespeare.lit';
@@ -5062,7 +5062,7 @@
             describe("A paused notification", function () {
             describe("A paused notification", function () {
                 it("will be shown if received",
                 it("will be shown if received",
                     mock.initConverse(
                     mock.initConverse(
-                        null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                        ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                     await test_utils.openChatRoom(_converse, "coven", 'chat.shakespeare.lit', 'some1');
                     await test_utils.openChatRoom(_converse, "coven", 'chat.shakespeare.lit', 'some1');
@@ -5220,7 +5220,7 @@
 
 
             it("will receive a user-friendly error message when trying to send a message",
             it("will receive a user-friendly error message when trying to send a message",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'trollbox@montague.lit';
                 const muc_jid = 'trollbox@montague.lit';
@@ -5244,7 +5244,7 @@
 
 
             it("will see an explanatory message instead of a textarea",
             it("will see an explanatory message instead of a textarea",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const features = [
                 const features = [

+ 18 - 18
spec/muc_messages.js

@@ -13,7 +13,7 @@
 
 
         it("is rejected if it's an unencapsulated forwarded message",
         it("is rejected if it's an unencapsulated forwarded message",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -49,7 +49,7 @@
 
 
         it("is specially marked when you are mentioned in it",
         it("is specially marked when you are mentioned in it",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -72,7 +72,7 @@
 
 
         it("can not be expected to have a unique id attribute",
         it("can not be expected to have a unique id attribute",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -104,7 +104,7 @@
 
 
         it("is ignored if it has the same stanza-id of an already received on",
         it("is ignored if it has the same stanza-id of an already received on",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'room@muc.example.com';
             const muc_jid = 'room@muc.example.com';
@@ -150,7 +150,7 @@
 
 
         it("will be discarded if it's a malicious message meant to look like a carbon copy",
         it("will be discarded if it's a malicious message meant to look like a carbon copy",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -210,7 +210,7 @@
 
 
         it("keeps track of the sender's role and affiliation",
         it("keeps track of the sender's role and affiliation",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -338,7 +338,7 @@
 
 
         it("keeps track whether you are the sender or not",
         it("keeps track whether you are the sender or not",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -358,7 +358,7 @@
 
 
         it("can be replaced with a correction",
         it("can be replaced with a correction",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -425,7 +425,7 @@
 
 
         it("can be sent as a correction by using the up arrow",
         it("can be sent as a correction by using the up arrow",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'lounge@montague.lit';
             const muc_jid = 'lounge@montague.lit';
@@ -530,7 +530,7 @@
 
 
         it("will be shown as received upon MUC reflection",
         it("will be shown as received upon MUC reflection",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -573,7 +573,7 @@
 
 
         it("gets updated with its stanza-id upon MUC reflection",
         it("gets updated with its stanza-id upon MUC reflection",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const muc_jid = 'room@muc.example.com';
             const muc_jid = 'room@muc.example.com';
@@ -609,7 +609,7 @@
 
 
         it("can cause a delivery receipt to be returned",
         it("can cause a delivery receipt to be returned",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -645,7 +645,7 @@
 
 
         it("can cause a chat marker to be returned",
         it("can cause a chat marker to be returned",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -714,7 +714,7 @@
 
 
             it("highlights all users mentioned via XEP-0372 references",
             it("highlights all users mentioned via XEP-0372 references",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -760,7 +760,7 @@
 
 
             it("gets parsed for mentions which get turned into references",
             it("gets parsed for mentions which get turned into references",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -842,7 +842,7 @@
 
 
             it("parses for mentions as indicated with an @ preceded by a space or at the start of the text",
             it("parses for mentions as indicated with an @ preceded by a space or at the start of the text",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -877,7 +877,7 @@
 
 
             it("can get corrected and given new references",
             it("can get corrected and given new references",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';
@@ -953,7 +953,7 @@
 
 
             it("includes XEP-0372 references to that person",
             it("includes XEP-0372 references to that person",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                         async function (done, _converse) {
                         async function (done, _converse) {
 
 
                 const muc_jid = 'lounge@montague.lit';
                 const muc_jid = 'lounge@montague.lit';

+ 4 - 12
spec/notification.js

@@ -14,9 +14,7 @@
                 describe("an HTML5 Notification", function () {
                 describe("an HTML5 Notification", function () {
 
 
                     it("is shown when a new private message is received",
                     it("is shown when a new private message is received",
-                        mock.initConverse(
-                            null, ['rosterGroupsFetched'], {},
-                            async (done, _converse) => {
+                            mock.initConverse(['rosterGroupsFetched'], {}, async (done, _converse) => {
 
 
                         await test_utils.waitForRoster(_converse, 'current');
                         await test_utils.waitForRoster(_converse, 'current');
                         spyOn(_converse, 'showMessageNotification').and.callThrough();
                         spyOn(_converse, 'showMessageNotification').and.callThrough();
@@ -40,9 +38,7 @@
                     }));
                     }));
 
 
                     it("is shown when you are mentioned in a groupchat",
                     it("is shown when you are mentioned in a groupchat",
-                        mock.initConverse(
-                            null, ['rosterGroupsFetched'], {},
-                            async (done, _converse) => {
+                            mock.initConverse(['rosterGroupsFetched'], {}, async (done, _converse) => {
 
 
                         await test_utils.createContacts(_converse, 'current');
                         await test_utils.createContacts(_converse, 'current');
                         await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                         await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
@@ -82,9 +78,7 @@
                     }));
                     }));
 
 
                     it("is shown for headline messages",
                     it("is shown for headline messages",
-                        mock.initConverse(
-                            null, ['rosterGroupsFetched'], {},
-                            async (done, _converse) => {
+                            mock.initConverse(['rosterGroupsFetched'], {}, async (done, _converse) => {
 
 
                         spyOn(_converse, 'showMessageNotification').and.callThrough();
                         spyOn(_converse, 'showMessageNotification').and.callThrough();
                         spyOn(_converse, 'isMessageToHiddenChat').and.returnValue(true);
                         spyOn(_converse, 'isMessageToHiddenChat').and.returnValue(true);
@@ -166,9 +160,7 @@
             describe("A notification sound", function () {
             describe("A notification sound", function () {
 
 
                 it("is played when the current user is mentioned in a groupchat",
                 it("is played when the current user is mentioned in a groupchat",
-                    mock.initConverse(
-                        null, ['rosterGroupsFetched'], {},
-                        async (done, _converse) => {
+                        mock.initConverse(['rosterGroupsFetched'], {}, async (done, _converse) => {
 
 
                     test_utils.createContacts(_converse, 'current');
                     test_utils.createContacts(_converse, 'current');
                     await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');
                     await test_utils.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo');

+ 12 - 12
spec/omemo.js

@@ -77,7 +77,7 @@
 
 
         it("adds methods for encrypting and decrypting messages via AES GCM",
         it("adds methods for encrypting and decrypting messages via AES GCM",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const message = 'This message will be encrypted'
             const message = 'This message will be encrypted'
@@ -94,7 +94,7 @@
 
 
         it("enables encrypted messages to be sent and received",
         it("enables encrypted messages to be sent and received",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             let sent_stanza;
             let sent_stanza;
@@ -234,7 +234,7 @@
 
 
         it("enables encrypted groupchat messages to be sent and received",
         it("enables encrypted groupchat messages to be sent and received",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             // MEMO encryption works only in members only conferences
             // MEMO encryption works only in members only conferences
@@ -381,7 +381,7 @@
 
 
         it("will create a new device based on a received carbon message",
         it("will create a new device based on a received carbon message",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], [Strophe.NS.SID]);
             await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], [Strophe.NS.SID]);
@@ -472,7 +472,7 @@
 
 
         it("gracefully handles auth errors when trying to send encrypted groupchat messages",
         it("gracefully handles auth errors when trying to send encrypted groupchat messages",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             // MEMO encryption works only in members only conferences
             // MEMO encryption works only in members only conferences
@@ -601,7 +601,7 @@
 
 
         it("can receive a PreKeySignalMessage",
         it("can receive a PreKeySignalMessage",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             _converse.NUM_PREKEYS = 5; // Restrict to 5, otherwise the resulting stanza is too large to easily test
             _converse.NUM_PREKEYS = 5; // Restrict to 5, otherwise the resulting stanza is too large to easily test
@@ -701,7 +701,7 @@
 
 
         it("updates device lists based on PEP messages",
         it("updates device lists based on PEP messages",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {'allow_non_roster_messaging': true},
+                ['rosterGroupsFetched'], {'allow_non_roster_messaging': true},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -875,7 +875,7 @@
 
 
         it("updates device bundles based on PEP messages",
         it("updates device bundles based on PEP messages",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -1025,7 +1025,7 @@
 
 
         it("publishes a bundle with which an encrypted session can be created",
         it("publishes a bundle with which an encrypted session can be created",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -1104,7 +1104,7 @@
 
 
         it("adds a toolbar button for starting an encrypted chat session",
         it("adds a toolbar button for starting an encrypted chat session",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -1269,7 +1269,7 @@
 
 
         it("adds a toolbar button for starting an encrypted groupchat session",
         it("adds a toolbar button for starting an encrypted groupchat session",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(
@@ -1451,7 +1451,7 @@
 
 
         it("shows OMEMO device fingerprints in the user details modal",
         it("shows OMEMO device fingerprints in the user details modal",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             await test_utils.waitUntilDiscoConfirmed(
             await test_utils.waitUntilDiscoConfirmed(

+ 3 - 3
spec/presence.js

@@ -15,7 +15,7 @@
 
 
         it("includes a entity capabilities node",
         it("includes a entity capabilities node",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 (done, _converse) => {
                 (done, _converse) => {
 
 
             _converse.api.disco.own.identities.clear();
             _converse.api.disco.own.identities.clear();
@@ -71,7 +71,7 @@
 
 
         it("includes the saved status message",
         it("includes the saved status message",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
             test_utils.openControlBox();
             test_utils.openControlBox();
@@ -111,7 +111,7 @@
 
 
         it("has its priority taken into account",
         it("has its priority taken into account",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 (done, _converse) => {
                 (done, _converse) => {
 
 
             test_utils.openControlBox();
             test_utils.openControlBox();

+ 3 - 3
spec/profiling.js

@@ -10,7 +10,7 @@
 
 
         it("shows users currently present in the groupchat",
         it("shows users currently present in the groupchat",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {'muc_show_join_leave': false},
+                ['rosterGroupsFetched'], {'muc_show_join_leave': false},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.openControlBox();
             test_utils.openControlBox();
@@ -37,7 +37,7 @@
 
 
         xit("adds hundreds of contacts to the roster",
         xit("adds hundreds of contacts to the roster",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
             _converse.roster_groups = false;
             _converse.roster_groups = false;
@@ -81,7 +81,7 @@
 
 
         xit("adds hundreds of contacts to the roster, with roster groups",
         xit("adds hundreds of contacts to the roster, with roster groups",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
             // _converse.show_only_online_users = true;
             // _converse.show_only_online_users = true;

+ 4 - 4
spec/protocol.js

@@ -50,7 +50,7 @@
              */
              */
             it("Subscribe to contact, contact accepts and subscribes back",
             it("Subscribe to contact, contact accepts and subscribes back",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'],
+                    ['rosterGroupsFetched'],
                     { roster_groups: false },
                     { roster_groups: false },
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
@@ -368,7 +368,7 @@
 
 
             it("Alternate Flow: Contact Declines Subscription Request",
             it("Alternate Flow: Contact Declines Subscription Request",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
                 /* The process by which a user subscribes to a contact, including
                 /* The process by which a user subscribes to a contact, including
@@ -451,7 +451,7 @@
 
 
             it("Unsubscribe to a contact when subscription is mutual",
             it("Unsubscribe to a contact when subscription is mutual",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'],
+                    ['rosterGroupsFetched'],
                     { roster_groups: false },
                     { roster_groups: false },
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
@@ -510,7 +510,7 @@
             }));
             }));
 
 
             it("Receiving a subscription request", mock.initConverse(
             it("Receiving a subscription request", mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
                 spyOn(_converse.api, "trigger").and.callThrough();
                 spyOn(_converse.api, "trigger").and.callThrough();

+ 4 - 4
spec/push.js

@@ -11,7 +11,7 @@
     describe("XEP-0357 Push Notifications", function () {
     describe("XEP-0357 Push Notifications", function () {
 
 
         it("can be enabled",
         it("can be enabled",
-            mock.initConverse(null,
+            mock.initConverse(
                 ['rosterGroupsFetched'], {
                 ['rosterGroupsFetched'], {
                     'push_app_servers': [{
                     'push_app_servers': [{
                         'jid': 'push-5@client.example',
                         'jid': 'push-5@client.example',
@@ -49,7 +49,7 @@
         }));
         }));
 
 
         it("can be enabled for a MUC domain",
         it("can be enabled for a MUC domain",
-            mock.initConverse(null,
+            mock.initConverse(
                 ['rosterGroupsFetched'], {
                 ['rosterGroupsFetched'], {
                     'enable_muc_push': true,
                     'enable_muc_push': true,
                     'push_app_servers': [{
                     'push_app_servers': [{
@@ -109,7 +109,7 @@
         }));
         }));
 
 
         it("can be disabled",
         it("can be disabled",
-            mock.initConverse(null,
+            mock.initConverse(
                 ['rosterGroupsFetched'], {
                 ['rosterGroupsFetched'], {
                     'push_app_servers': [{
                     'push_app_servers': [{
                         'jid': 'push-5@client.example',
                         'jid': 'push-5@client.example',
@@ -145,7 +145,7 @@
 
 
 
 
         it("can require a secret token to be included",
         it("can require a secret token to be included",
-            mock.initConverse(null,
+            mock.initConverse(
                 ['rosterGroupsFetched'], {
                 ['rosterGroupsFetched'], {
                     'push_app_servers': [{
                     'push_app_servers': [{
                         'jid': 'push-5@client.example',
                         'jid': 'push-5@client.example',

+ 7 - 7
spec/register.js

@@ -10,7 +10,7 @@
 
 
         it("is not available unless allow_registration=true",
         it("is not available unless allow_registration=true",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: false },
                   allow_registration: false },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -24,7 +24,7 @@
 
 
         it("can be opened by clicking on the registration tab",
         it("can be opened by clicking on the registration tab",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: true },
                   allow_registration: true },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -45,7 +45,7 @@
 
 
         it("allows the user to choose an XMPP provider's domain",
         it("allows the user to choose an XMPP provider's domain",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: true },
                   allow_registration: true },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -81,7 +81,7 @@
 
 
         it("will render a registration form as received from the XMPP provider",
         it("will render a registration form as received from the XMPP provider",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: true },
                   allow_registration: true },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -137,7 +137,7 @@
 
 
         it("will set form_type to legacy and submit it as legacy",
         it("will set form_type to legacy and submit it as legacy",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: true },
                   allow_registration: true },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -194,7 +194,7 @@
 
 
         it("will set form_type to xform and submit it as xform",
         it("will set form_type to xform and submit it as xform",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   allow_registration: true },
                   allow_registration: true },
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -267,7 +267,7 @@
 
 
         it("renders the account registration form",
         it("renders the account registration form",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { auto_login: false,
                 { auto_login: false,
                   view_mode: 'fullscreen',
                   view_mode: 'fullscreen',
                   allow_registration: true },
                   allow_registration: true },

+ 2 - 2
spec/room_registration.js

@@ -14,7 +14,7 @@
 
 
             it("allows you to register your nickname in a room",
             it("allows you to register your nickname in a room",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'auto_register_muc_nickname': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'auto_register_muc_nickname': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'coven@chat.shakespeare.lit';
                 const muc_jid = 'coven@chat.shakespeare.lit';
@@ -71,7 +71,7 @@
 
 
             it("allows you to automatically register your nickname when joining a room",
             it("allows you to automatically register your nickname when joining a room",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched', 'chatBoxesFetched'], {'auto_register_muc_nickname': true},
+                    ['rosterGroupsFetched', 'chatBoxesFetched'], {'auto_register_muc_nickname': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const muc_jid = 'coven@chat.shakespeare.lit';
                 const muc_jid = 'coven@chat.shakespeare.lit';

+ 5 - 6
spec/roomslist.js

@@ -8,7 +8,7 @@
     describe("A list of open groupchats", function () {
     describe("A list of open groupchats", function () {
 
 
         it("is shown in controlbox", mock.initConverse(
         it("is shown in controlbox", mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
+                ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
                 { allow_bookmarks: false // Makes testing easier, otherwise we
                 { allow_bookmarks: false // Makes testing easier, otherwise we
                                          // have to mock stanza traffic.
                                          // have to mock stanza traffic.
                 }, async function (done, _converse) {
                 }, async function (done, _converse) {
@@ -53,7 +53,6 @@
 
 
         it("uses bookmarks to determine groupchat names",
         it("uses bookmarks to determine groupchat names",
             mock.initConverse(
             mock.initConverse(
-                null,
                 ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
                 ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
                 {'view_mode': 'fullscreen'},
                 {'view_mode': 'fullscreen'},
                 async function (done, _converse) {
                 async function (done, _converse) {
@@ -114,7 +113,7 @@
     describe("A groupchat shown in the groupchats list", function () {
     describe("A groupchat shown in the groupchats list", function () {
 
 
         it("is highlighted if it's currently open", mock.initConverse(
         it("is highlighted if it's currently open", mock.initConverse(
-            null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
+            ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
             { view_mode: 'fullscreen',
             { view_mode: 'fullscreen',
               allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
               allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
             }, async function (done, _converse) {
             }, async function (done, _converse) {
@@ -141,7 +140,7 @@
         }));
         }));
 
 
         it("has an info icon which opens a details modal when clicked", mock.initConverse(
         it("has an info icon which opens a details modal when clicked", mock.initConverse(
-            null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
+            ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'],
             { whitelisted_plugins: ['converse-roomslist'],
             { whitelisted_plugins: ['converse-roomslist'],
               allow_bookmarks: false // Makes testing easier, otherwise we
               allow_bookmarks: false // Makes testing easier, otherwise we
                                      // have to mock stanza traffic.
                                      // have to mock stanza traffic.
@@ -246,7 +245,7 @@
         }));
         }));
 
 
         it("can be closed", mock.initConverse(
         it("can be closed", mock.initConverse(
-            null, ['rosterGroupsFetched', 'emojisInitialized'],
+            ['rosterGroupsFetched', 'emojisInitialized'],
             { whitelisted_plugins: ['converse-roomslist'],
             { whitelisted_plugins: ['converse-roomslist'],
               allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
               allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
             },
             },
@@ -271,7 +270,7 @@
         }));
         }));
 
 
         it("shows unread messages directed at the user", mock.initConverse(
         it("shows unread messages directed at the user", mock.initConverse(
-                null, null,
+                null,
                 { whitelisted_plugins: ['converse-roomslist'],
                 { whitelisted_plugins: ['converse-roomslist'],
                 allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
                 allow_bookmarks: false // Makes testing easier, otherwise we have to mock stanza traffic.
                 }, async (done, _converse) => {
                 }, async (done, _converse) => {

+ 40 - 40
spec/roster.js

@@ -30,7 +30,7 @@
 
 
         it("verifies the origin of roster pushes",
         it("verifies the origin of roster pushes",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             // See: https://gultsch.de/gajim_roster_push_and_message_interception.html
             // See: https://gultsch.de/gajim_roster_push_and_message_interception.html
@@ -71,7 +71,7 @@
 
 
         it("is populated once we have registered a presence handler",
         it("is populated once we have registered a presence handler",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             spyOn(_converse.api, "trigger").and.callThrough();
             spyOn(_converse.api, "trigger").and.callThrough();
@@ -99,7 +99,7 @@
 
 
         it("supports roster versioning",
         it("supports roster versioning",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             const IQ_stanzas = _converse.connection.IQ_stanzas;
             const IQ_stanzas = _converse.connection.IQ_stanzas;
@@ -156,7 +156,7 @@
 
 
             it("will only appear when roster contacts flow over the visible area",
             it("will only appear when roster contacts flow over the visible area",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const filter = _converse.rosterview.el.querySelector('.roster-filter');
                 const filter = _converse.rosterview.el.querySelector('.roster-filter');
@@ -177,7 +177,7 @@
 
 
             it("can be used to filter the contacts shown",
             it("can be used to filter the contacts shown",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'roster_groups': true},
+                    ['rosterGroupsFetched'], {'roster_groups': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -230,7 +230,7 @@
 
 
             it("will also filter out contacts added afterwards",
             it("will also filter out contacts added afterwards",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -274,7 +274,7 @@
 
 
             it("can be used to filter the groups shown",
             it("can be used to filter the groups shown",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'roster_groups': true},
+                    ['rosterGroupsFetched'], {'roster_groups': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -316,7 +316,7 @@
 
 
             it("has a button with which its contents can be cleared",
             it("has a button with which its contents can be cleared",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.roster_groups = true;
                 _converse.roster_groups = true;
@@ -340,7 +340,7 @@
             // fails on Travis and I couldn't get it to pass there.
             // fails on Travis and I couldn't get it to pass there.
             xit("can be used to filter contacts by their chat state",
             xit("can be used to filter contacts by their chat state",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createGroupedContacts(_converse);
                 test_utils.createGroupedContacts(_converse);
@@ -375,7 +375,7 @@
 
 
             it("can be used to organize existing contacts",
             it("can be used to organize existing contacts",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.roster_groups = true;
                 _converse.roster_groups = true;
@@ -412,7 +412,7 @@
 
 
             it("gets created when a contact's \"groups\" attribute changes",
             it("gets created when a contact's \"groups\" attribute changes",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.roster_groups = true;
                 _converse.roster_groups = true;
@@ -457,7 +457,7 @@
 
 
             it("can share contacts with other roster groups",
             it("can share contacts with other roster groups",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'roster_groups': true},
+                    ['rosterGroupsFetched'], {'roster_groups': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 const groups = ['colleagues', 'friends'];
                 const groups = ['colleagues', 'friends'];
@@ -486,7 +486,7 @@
 
 
             it("remembers whether it is closed or opened",
             it("remembers whether it is closed or opened",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.roster_groups = true;
                 _converse.roster_groups = true;
@@ -531,7 +531,7 @@
 
 
             it("can be collapsed under their own header",
             it("can be collapsed under their own header",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -545,7 +545,7 @@
 
 
             it("can be added to the roster",
             it("can be added to the roster",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
                 spyOn(_converse.rosterview, 'update').and.callThrough();
                 spyOn(_converse.rosterview, 'update').and.callThrough();
@@ -562,7 +562,7 @@
 
 
             it("are shown in the roster when show_only_online_users",
             it("are shown in the roster when show_only_online_users",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.show_only_online_users = true;
                 _converse.show_only_online_users = true;
@@ -579,7 +579,7 @@
 
 
             it("are shown in the roster when hide_offline_users",
             it("are shown in the roster when hide_offline_users",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {'hide_offline_users': true},
+                    ['rosterGroupsFetched'], {'hide_offline_users': true},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 spyOn(_converse.rosterview, 'update').and.callThrough();
                 spyOn(_converse.rosterview, 'update').and.callThrough();
@@ -594,7 +594,7 @@
 
 
             it("can be removed by the user",
             it("can be removed by the user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _addContacts(_converse);
                 _addContacts(_converse);
@@ -625,7 +625,7 @@
 
 
             it("do not have a header if there aren't any",
             it("do not have a header if there aren't any",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -663,7 +663,7 @@
 
 
             it("is shown when a new private message is received",
             it("is shown when a new private message is received",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _addContacts(_converse);
                 _addContacts(_converse);
@@ -679,7 +679,7 @@
 
 
             it("can be added to the roster and they will be sorted alphabetically",
             it("can be added to the roster and they will be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 let i;
                 let i;
@@ -712,7 +712,7 @@
 
 
             it("can be collapsed under their own header",
             it("can be collapsed under their own header",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -723,7 +723,7 @@
 
 
             it("will be hidden when appearing under a collapsed group",
             it("will be hidden when appearing under a collapsed group",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 _converse.roster_groups = false;
                 _converse.roster_groups = false;
@@ -746,7 +746,7 @@
 
 
             it("can be added to the roster and they will be sorted alphabetically",
             it("can be added to the roster and they will be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -770,7 +770,7 @@
 
 
             it("can be removed by the user",
             it("can be removed by the user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -799,7 +799,7 @@
 
 
             it("do not have a header if there aren't any",
             it("do not have a header if there aren't any",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -828,7 +828,7 @@
 
 
             it("can change their status to online and be sorted alphabetically",
             it("can change their status to online and be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -850,7 +850,7 @@
 
 
             it("can change their status to busy and be sorted alphabetically",
             it("can change their status to busy and be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -872,7 +872,7 @@
 
 
             it("can change their status to away and be sorted alphabetically",
             it("can change their status to away and be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -894,7 +894,7 @@
 
 
             it("can change their status to xa and be sorted alphabetically",
             it("can change their status to xa and be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -918,7 +918,7 @@
 
 
             it("can change their status to unavailable and be sorted alphabetically",
             it("can change their status to unavailable and be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -942,7 +942,7 @@
 
 
             it("are ordered according to status: online, busy, away, xa, unavailable, offline",
             it("are ordered according to status: online, busy, away, xa, unavailable, offline",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 await _addContacts(_converse);
                 await _addContacts(_converse);
@@ -1033,7 +1033,7 @@
 
 
             it("can be added to the roster and they will be sorted alphabetically",
             it("can be added to the roster and they will be sorted alphabetically",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -1066,7 +1066,7 @@
 
 
             it("do not have a header if there aren't any",
             it("do not have a header if there aren't any",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -1090,7 +1090,7 @@
 
 
             it("can be collapsed under their own header",
             it("can be collapsed under their own header",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'requesting').openControlBox();
                 test_utils.createContacts(_converse, 'requesting').openControlBox();
@@ -1104,7 +1104,7 @@
 
 
             it("can have their requests accepted by the user",
             it("can have their requests accepted by the user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.openControlBox();
                 test_utils.openControlBox();
@@ -1128,7 +1128,7 @@
 
 
             it("can have their requests denied by the user",
             it("can have their requests denied by the user",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'requesting').openControlBox();
                 test_utils.createContacts(_converse, 'requesting').openControlBox();
@@ -1149,7 +1149,7 @@
             }));
             }));
 
 
             it("are persisted even if other contacts' change their presence ", mock.initConverse(
             it("are persisted even if other contacts' change their presence ", mock.initConverse(
-                null, ['rosterGroupsFetched'], {}, async function (done, _converse) {
+                ['rosterGroupsFetched'], {}, async function (done, _converse) {
 
 
                 /* This is a regression test.
                 /* This is a regression test.
                  * https://github.com/jcbrand/_converse.js/issues/262
                  * https://github.com/jcbrand/_converse.js/issues/262
@@ -1205,7 +1205,7 @@
 
 
             it("are saved to, and can be retrieved from browserStorage",
             it("are saved to, and can be retrieved from browserStorage",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     function (done, _converse) {
                     function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'all').openControlBox();
                 test_utils.createContacts(_converse, 'all').openControlBox();
@@ -1233,7 +1233,7 @@
 
 
             it("will show fullname and jid properties on tooltip",
             it("will show fullname and jid properties on tooltip",
                 mock.initConverse(
                 mock.initConverse(
-                    null, ['rosterGroupsFetched'], {},
+                    ['rosterGroupsFetched'], {},
                     async function (done, _converse) {
                     async function (done, _converse) {
 
 
                 test_utils.createContacts(_converse, 'all').openControlBox();
                 test_utils.createContacts(_converse, 'all').openControlBox();

+ 1 - 1
spec/smacks.js

@@ -11,7 +11,7 @@
 
 
         it("gets enabled with an <enable> stanza and resumed with a <resume> stanza",
         it("gets enabled with an <enable> stanza and resumed with a <resume> stanza",
             mock.initConverse(
             mock.initConverse(
-                null, ['chatBoxesInitialized'],
+                ['chatBoxesInitialized'],
                 { 'auto_login': false,
                 { 'auto_login': false,
                   'enable_smacks': true,
                   'enable_smacks': true,
                   'show_controlbox_by_default': true,
                   'show_controlbox_by_default': true,

+ 4 - 4
spec/spoilers.js

@@ -11,7 +11,7 @@
 
 
         it("can be received with a hint",
         it("can be received with a hint",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -48,7 +48,7 @@
 
 
         it("can be received without a hint",
         it("can be received without a hint",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
             await test_utils.waitForRoster(_converse, 'current');
             await test_utils.waitForRoster(_converse, 'current');
@@ -82,7 +82,7 @@
 
 
         it("can be sent without a hint",
         it("can be sent without a hint",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);
@@ -155,7 +155,7 @@
 
 
         it("can be sent with a hint",
         it("can be sent with a hint",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                 async (done, _converse) => {
                 async (done, _converse) => {
 
 
             await test_utils.waitForRoster(_converse, 'current', 1);
             await test_utils.waitForRoster(_converse, 'current', 1);

+ 1 - 1
spec/transcripts.js

@@ -50,7 +50,7 @@
 
 
         it("can be used to replay conversations",
         it("can be used to replay conversations",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched'], {},
+                ['rosterGroupsFetched'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             _converse.allow_non_roster_messaging = true;
             _converse.allow_non_roster_messaging = true;

+ 2 - 2
spec/user-details-modal.js

@@ -12,7 +12,7 @@
 
 
         it("can be used to remove a contact",
         it("can be used to remove a contact",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
+                ['rosterGroupsFetched', 'chatBoxesFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'current');
             test_utils.createContacts(_converse, 'current');
@@ -45,7 +45,7 @@
 
 
         it("shows an alert when an error happened while removing the contact",
         it("shows an alert when an error happened while removing the contact",
             mock.initConverse(
             mock.initConverse(
-                null, ['rosterGroupsFetched', 'emojisInitialized'], {},
+                ['rosterGroupsFetched', 'emojisInitialized'], {},
                 async function (done, _converse) {
                 async function (done, _converse) {
 
 
             test_utils.createContacts(_converse, 'current');
             test_utils.createContacts(_converse, 'current');

+ 11 - 11
tests/mock.js

@@ -182,7 +182,7 @@
     Strophe.Connection = MockConnection;
     Strophe.Connection = MockConnection;
 
 
 
 
-    async function initConverse (settings, spies={}) {
+    async function initConverse (settings) {
         window.localStorage.clear();
         window.localStorage.clear();
         window.sessionStorage.clear();
         window.sessionStorage.clear();
 
 
@@ -198,10 +198,6 @@
             'view_mode': mock.view_mode,
             'view_mode': mock.view_mode,
         }, settings || {}));
         }, settings || {}));
 
 
-        if (spies && spies._converse) {
-            spies._converse.forEach(method => spyOn(_converse, method).and.callThrough());
-        }
-
         _converse.ChatBoxViews.prototype.trimChat = function () {};
         _converse.ChatBoxViews.prototype.trimChat = function () {};
 
 
         _converse.api.vcard.get = function (model, force) {
         _converse.api.vcard.get = function (model, force) {
@@ -244,15 +240,14 @@
         return _converse;
         return _converse;
     }
     }
 
 
-    mock.initConverse = function (spies={}, promise_names=[], settings=null, func) {
-        if (_.isFunction(spies)) {
-            func = spies;
-            spies = null;
+    mock.initConverse = function (promise_names=[], settings=null, func) {
+        if (_.isFunction(promise_names)) {
+            func = promise_names;
             promise_names = []
             promise_names = []
             settings = null;
             settings = null;
         }
         }
         return async done => {
         return async done => {
-            const _converse = await initConverse(settings, spies);
+            const _converse = await initConverse(settings);
             async function _done () {
             async function _done () {
                 if (_converse.api.connection.connected()) {
                 if (_converse.api.connection.connected()) {
                     await _converse.api.user.logout();
                     await _converse.api.user.logout();
@@ -264,7 +259,12 @@
                 done();
                 done();
             }
             }
             await Promise.all((promise_names || []).map(_converse.api.waitUntil));
             await Promise.all((promise_names || []).map(_converse.api.waitUntil));
-            func(_done, _converse).catch(e => { fail(e); _done(); });
+            try {
+                await func(_done, _converse);
+            } catch(e) {
+                fail(e);
+                _done();
+            }
         }
         }
     };
     };
     return mock;
     return mock;