diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.js index b84fe9c22..8925fda42 100644 --- a/src/EventuallyQueue.js +++ b/src/EventuallyQueue.js @@ -308,12 +308,14 @@ const EventuallyQueue = { } polling = setInterval(() => { const RESTController = CoreManager.getRESTController(); - RESTController.ajax('GET', CoreManager.get('SERVER_URL')).catch(error => { - if (error !== 'Unable to connect to the Parse API') { - this.stopPoll(); - return this.sendQueue(); - } - }); + RESTController.request('GET', 'health') + .then(({ status }) => { + if (status === 'ok') { + this.stopPoll(); + return this.sendQueue(); + } + }) + .catch(e => e); }, ms); }, diff --git a/src/__tests__/EventuallyQueue-test.js b/src/__tests__/EventuallyQueue-test.js index c5460d264..d51436707 100644 --- a/src/__tests__/EventuallyQueue-test.js +++ b/src/__tests__/EventuallyQueue-test.js @@ -52,6 +52,12 @@ const RESTController = require('../RESTController'); const Storage = require('../Storage'); const mockXHR = require('./test_helpers/mockXHR'); +CoreManager.setInstallationController({ + currentInstallationId() { + return Promise.resolve('iid'); + }, +}); + function flushPromises() { return new Promise(resolve => setImmediate(resolve)); } @@ -400,7 +406,7 @@ describe('EventuallyQueue', () => { it('can poll server', async () => { jest.spyOn(EventuallyQueue, 'sendQueue').mockImplementationOnce(() => {}); - RESTController._setXHR(mockXHR([{ status: 107, response: { error: 'ok' } }])); + RESTController._setXHR(mockXHR([{ status: 200, response: { status: 'ok' } }])); EventuallyQueue.poll(); expect(EventuallyQueue.isPolling()).toBe(true); jest.runOnlyPendingTimers();