converse-disco: Catch and report errors that happen during tests
This commit is contained in:
parent
021143d6ac
commit
78c7ded2e5
@ -410,6 +410,12 @@ converse.plugins.add('converse-disco', {
|
||||
if (_.isNil(name) || _.isNil(xmlns)) {
|
||||
throw new Error("name and xmlns need to be provided when calling disco.stream.getFeature");
|
||||
}
|
||||
if (_converse.stream_features === undefined && !_converse.api.connection.connected()) {
|
||||
// Happens during tests when disco lookups happen asynchronously after teardown.
|
||||
const msg = `Tried to get feature ${name} ${xmlns} but _converse.stream_features has been torn down`;
|
||||
_converse.log(msg, Strophe.LogLevel.WARN);
|
||||
return;
|
||||
}
|
||||
return _converse.stream_features.findWhere({'name': name, 'xmlns': xmlns});
|
||||
}
|
||||
},
|
||||
@ -564,6 +570,12 @@ converse.plugins.add('converse-disco', {
|
||||
if (_.isNil(jid)) {
|
||||
return _converse.disco_entities;
|
||||
}
|
||||
if (_converse.disco_entities === undefined && !_converse.api.connection.connected()) {
|
||||
// Happens during tests when disco lookups happen asynchronously after teardown.
|
||||
const msg = `Tried to look up entity ${jid} but _converse.disco_entities has been torn down`;
|
||||
_converse.log(msg, Strophe.LogLevel.WARN);
|
||||
return;
|
||||
}
|
||||
const entity = _converse.disco_entities.get(jid);
|
||||
if (entity || !create) {
|
||||
return entity;
|
||||
@ -619,6 +631,13 @@ converse.plugins.add('converse-disco', {
|
||||
}
|
||||
await _converse.api.waitUntil('discoInitialized');
|
||||
let entity = await _converse.api.disco.entities.get(jid, true);
|
||||
|
||||
if (_converse.disco_entities === undefined && !_converse.api.connection.connected()) {
|
||||
// Happens during tests when disco lookups happen asynchronously after teardown.
|
||||
const msg = `Tried to get feature ${feature} for ${jid} but _converse.disco_entities has been torn down`;
|
||||
_converse.log(msg, Strophe.LogLevel.WARN);
|
||||
return;
|
||||
}
|
||||
entity = await entity.waitUntilFeaturesDiscovered;
|
||||
const promises = _.concat(
|
||||
entity.items.map(item => item.hasFeature(feature)),
|
||||
@ -756,6 +775,12 @@ converse.plugins.add('converse-disco', {
|
||||
*/
|
||||
async getIdentity (category, type, jid) {
|
||||
const e = await _converse.api.disco.entities.get(jid, true);
|
||||
if (e === undefined && !_converse.api.connection.connected()) {
|
||||
// Happens during tests when disco lookups happen asynchronously after teardown.
|
||||
const msg = `Tried to look up category ${category} for ${jid} but _converse.disco_entities has been torn down`;
|
||||
_converse.log(msg, Strophe.LogLevel.WARN);
|
||||
return;
|
||||
}
|
||||
return e.getIdentity(category, type);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user