From f87285409b121517ffc852c7a526265ceada6f45 Mon Sep 17 00:00:00 2001 From: Dylan Jhaveri Date: Thu, 3 May 2018 07:50:04 -0700 Subject: [PATCH] if the client is already ready, waitUntilReady() should resolve closes https://github.com/launchdarkly/node-client/issues/78 --- index.js | 1 + test/LDClient-test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/index.js b/index.js index acf4d0d..b7d7fbd 100644 --- a/index.js +++ b/index.js @@ -121,6 +121,7 @@ var new_client = function(sdk_key, config) { } client.waitUntilReady = function() { + if (init_complete) return Promise.resolve() return new Promise(function(resolve) { client.once('ready', resolve); }); diff --git a/test/LDClient-test.js b/test/LDClient-test.js index 0e313b4..fb6903e 100644 --- a/test/LDClient-test.js +++ b/test/LDClient-test.js @@ -48,4 +48,31 @@ describe('LDClient', function() { done(); }); }); + + describe('waitUntilReady()', function () { + it('should resolve waitUntilReady() when ready', function(done) { + var client = LDClient.init('secret', {offline: true}); + var callback = jest.fn(); + + client.waitUntilReady().then(callback) + .then(() => { + expect(callback).toHaveBeenCalled(); + done(); + }).catch(done.error) + }); + + it('should resolve waitUntilReady() even if the client is already ready', function(done) { + var client = LDClient.init('secret', {offline: true}); + var callback = jest.fn(); + + client.waitUntilReady() + .then(() => { + client.waitUntilReady().then(callback) + .then(() => { + expect(callback).toHaveBeenCalled(); + done(); + }).catch(done.error) + }).catch(done.error) + }); + }); });