1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-28 05:03:59 +03:00

Fix tests

* Go back to previous behaviour of continuing to emit ERROR states if it continues to fail
 * Don't set a timer if the timeout is zero
 * Change test to assert the continued-error behaviour, not exactly multiple syncs failing
 * Update other tests to fail the keepalive requests where appropriate
This commit is contained in:
David Baker
2016-10-06 20:54:57 +01:00
parent 1c744a66e6
commit cd5a88c718
2 changed files with 37 additions and 14 deletions

View File

@@ -856,10 +856,14 @@ SyncApi.prototype._startKeepAlives = function(delay) {
clearTimeout(this._keepAliveTimer);
}
var self = this;
self._keepAliveTimer = setTimeout(
self._pokeKeepAlive.bind(self),
delay
);
if (delay > 0) {
self._keepAliveTimer = setTimeout(
self._pokeKeepAlive.bind(self),
delay
);
} else {
self._pokeKeepAlive();
}
if (!this._connectionReturnedDefer) {
this._connectionReturnedDefer = q.defer();
}
@@ -899,17 +903,18 @@ SyncApi.prototype._pokeKeepAlive = function() {
// responses fail, this will mean we don't hammer in a loop.
self._keepAliveTimer = setTimeout(success, 2000);
} else {
// If we haven't already marked this sync
// connection as gone-away, do so now and
// emit an error.
if (!self._syncConnectionLost) {
self._syncConnectionLost = true;
self._updateSyncState("ERROR", { error: err });
}
self._keepAliveTimer = setTimeout(
self._pokeKeepAlive.bind(self),
5000 + Math.floor(Math.random() * 5000)
);
// If we haven't already marked this sync
// connection as gone-away, do so now and
// emit an error.
// Note we do this after setting the timer:
// this lets the unit tests advance the mock
// clock when the get the error.
self._syncConnectionLost = true;
self._updateSyncState("ERROR", { error: err });
}
});
};