From 606acda12edb0a0ab0f8b686963da47a76a78d19 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 23 Feb 2021 11:24:37 -0600 Subject: [PATCH 1/2] fix(EventuallyQueue): Poll against /health endpoint --- src/EventuallyQueue.js | 10 ++++++---- src/__tests__/EventuallyQueue-test.js | 8 +++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.js index b84fe9c22..4c3cff7f4 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') { + RESTController.request('GET', 'health/') + .then(() => { this.stopPoll(); return this.sendQueue(); - } - }); + }) + .catch(() => { + // 'Unable to connect to the Parse API' keep polling + }); }, ms); }, diff --git a/src/__tests__/EventuallyQueue-test.js b/src/__tests__/EventuallyQueue-test.js index c5460d264..479ae9122 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: {} }])); EventuallyQueue.poll(); expect(EventuallyQueue.isPolling()).toBe(true); jest.runOnlyPendingTimers(); From 641ec2e753569c8dc0040fa4289269577eb93556 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 23 Feb 2021 13:52:07 -0600 Subject: [PATCH 2/2] Clean up --- src/EventuallyQueue.js | 14 +++++++------- src/__tests__/EventuallyQueue-test.js | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.js index 4c3cff7f4..8925fda42 100644 --- a/src/EventuallyQueue.js +++ b/src/EventuallyQueue.js @@ -308,14 +308,14 @@ const EventuallyQueue = { } polling = setInterval(() => { const RESTController = CoreManager.getRESTController(); - RESTController.request('GET', 'health/') - .then(() => { - this.stopPoll(); - return this.sendQueue(); + RESTController.request('GET', 'health') + .then(({ status }) => { + if (status === 'ok') { + this.stopPoll(); + return this.sendQueue(); + } }) - .catch(() => { - // 'Unable to connect to the Parse API' keep polling - }); + .catch(e => e); }, ms); }, diff --git a/src/__tests__/EventuallyQueue-test.js b/src/__tests__/EventuallyQueue-test.js index 479ae9122..d51436707 100644 --- a/src/__tests__/EventuallyQueue-test.js +++ b/src/__tests__/EventuallyQueue-test.js @@ -406,7 +406,7 @@ describe('EventuallyQueue', () => { it('can poll server', async () => { jest.spyOn(EventuallyQueue, 'sendQueue').mockImplementationOnce(() => {}); - RESTController._setXHR(mockXHR([{ status: 200, response: {} }])); + RESTController._setXHR(mockXHR([{ status: 200, response: { status: 'ok' } }])); EventuallyQueue.poll(); expect(EventuallyQueue.isPolling()).toBe(true); jest.runOnlyPendingTimers();