core: let logout return a promise and wait for it in tests
This commit is contained in:
parent
a0bd6dbab6
commit
6253dd52a6
|
@ -1552,17 +1552,26 @@ _converse.api = {
|
|||
* @example _converse.api.user.logout();
|
||||
*/
|
||||
logout () {
|
||||
const promise = u.getResolveablePromise();
|
||||
const complete = () => {
|
||||
// Recreate all the promises
|
||||
Object.keys(_converse.promises).forEach(addPromise);
|
||||
/**
|
||||
* Triggered once the user has logged out.
|
||||
* @event _converse#logout
|
||||
*/
|
||||
_converse.api.trigger('logout');
|
||||
promise.resolve();
|
||||
}
|
||||
|
||||
_converse.setDisconnectionCause(_converse.LOGOUT, undefined, true);
|
||||
if (_converse.connection !== undefined) {
|
||||
_converse.api.listen.once('disconnected', () => complete());
|
||||
_converse.connection.disconnect();
|
||||
} else {
|
||||
complete();
|
||||
}
|
||||
// Recreate all the promises
|
||||
Object.keys(_converse.promises).forEach(addPromise);
|
||||
/**
|
||||
* Triggered once the user has logged out.
|
||||
* @event _converse#logout
|
||||
*/
|
||||
_converse.api.trigger('logout');
|
||||
return promise;
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -262,8 +262,10 @@
|
|||
}
|
||||
return async done => {
|
||||
const _converse = await initConverse(settings, spies);
|
||||
function _done () {
|
||||
_converse.api.user.logout();
|
||||
async function _done () {
|
||||
await _converse.api.user.logout();
|
||||
const el = document.querySelector('#conversejs');
|
||||
el.parentElement.removeChild(el);
|
||||
done();
|
||||
}
|
||||
await Promise.all((promise_names || []).map(_converse.api.waitUntil));
|
||||
|
|
Loading…
Reference in New Issue
Block a user