From 67cf4230ac3bfbe4355539c34ad0f5aa9df8e2a9 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Dec 2016 14:27:41 +0000 Subject: [PATCH] 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. --- test/app-tests/loading.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js index 1c6211d4e7..03a4d11e14 100644 --- a/test/app-tests/loading.js +++ b/test/app-tests/loading.js @@ -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 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 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();