2
0
Эх сурвалжийг харах

roster: avoid race-condition by waiting for contacts to be fetched

before creating any new ones
JC Brand 5 жил өмнө
parent
commit
b08f5d355b

+ 1 - 0
spec/protocol.js

@@ -112,6 +112,7 @@
                  *   </query>
                  *   </iq>
                  */
+                await test_utils.waitForRoster(_converse, 'all', 0);
                 expect(_converse.roster.sendContactAddIQ).toHaveBeenCalled();
                 expect(sent_stanza.toLocaleString()).toBe(
                     `<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+

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

@@ -516,6 +516,7 @@ converse.plugins.add('converse-roster', {
              * @param { Object } attributes - Any additional attributes to be stored on the user's model.
              */
             async addContactToRoster (jid, name, groups, attributes) {
+                await _converse.api.waitUntil('rosterContactsFetched');
                 groups = groups || [];
                 try {
                     await this.sendContactAddIQ(jid, name, groups);