Fix broken tests

Promises are now not being resolved within the same tick, so give
another tick for the UI to update after all the HTTP calls have
flushed through. This is fairly terrible, but I can't immediately
see a better way of doing this.
This commit is contained in:
David Baker 2016-12-09 14:27:41 +00:00
parent b06cff7928
commit 67cf4230ac
1 changed files with 24 additions and 0 deletions

View File

@ -154,6 +154,9 @@ describe('loading:', function () {
}).respond(403, "Guest access is disabled");
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// we expect a single <Login> component
ReactTestUtils.findRenderedComponentWithType(
@ -177,6 +180,9 @@ describe('loading:', function () {
}).respond(403, "Guest access is disabled");
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// we expect a single <Login> component
let login = ReactTestUtils.findRenderedComponentWithType(
@ -191,6 +197,9 @@ describe('loading:', function () {
});
login.onPasswordLogin("user", "pass")
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// we expect a spinner
ReactTestUtils.findRenderedComponentWithType(
@ -200,6 +209,9 @@ describe('loading:', function () {
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
httpBackend.when('GET', '/sync').respond(200, {});
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// once the sync completes, we should have a room view
httpBackend.verifyNoOutstandingExpectation();
@ -287,6 +299,9 @@ describe('loading:', function () {
});
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// now we should have a spinner with a logout link
assertAtSyncingSpinner(matrixChat);
@ -322,6 +337,9 @@ describe('loading:', function () {
});
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// now we should have a spinner with a logout link
assertAtSyncingSpinner(matrixChat);
@ -358,12 +376,18 @@ describe('loading:', function () {
});
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// now we should have a spinner with a logout link
assertAtSyncingSpinner(matrixChat);
httpBackend.when('GET', '/sync').respond(200, {});
return httpBackend.flush();
}).then(() => {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
// once the sync completes, we should have a room view
httpBackend.verifyNoOutstandingExpectation();