Commit c05e8110 authored by JC Brand's avatar JC Brand

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

before creating any new ones
parent 9a2ebceb
...@@ -112,6 +112,7 @@ ...@@ -112,6 +112,7 @@
* </query> * </query>
* </iq> * </iq>
*/ */
await test_utils.waitForRoster(_converse, 'all', 0);
expect(_converse.roster.sendContactAddIQ).toHaveBeenCalled(); expect(_converse.roster.sendContactAddIQ).toHaveBeenCalled();
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+ `<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+
......
...@@ -516,6 +516,7 @@ converse.plugins.add('converse-roster', { ...@@ -516,6 +516,7 @@ converse.plugins.add('converse-roster', {
* @param { Object } attributes - Any additional attributes to be stored on the user's model. * @param { Object } attributes - Any additional attributes to be stored on the user's model.
*/ */
async addContactToRoster (jid, name, groups, attributes) { async addContactToRoster (jid, name, groups, attributes) {
await _converse.api.waitUntil('rosterContactsFetched');
groups = groups || []; groups = groups || [];
try { try {
await this.sendContactAddIQ(jid, name, groups); await this.sendContactAddIQ(jid, name, groups);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment