From 3a40344af3f6ee8d02f4327eeb835c46d48b6394 Mon Sep 17 00:00:00 2001 From: Rafin Akther Utshaw Date: Thu, 20 Jul 2023 23:09:36 +0600 Subject: [PATCH] Add fetchsegments on setuser test --- src/client.spec.ts | 21 ++++++++++++++++++--- src/client.ts | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/client.spec.ts b/src/client.spec.ts index d6629ae7..77d5abc8 100644 --- a/src/client.spec.ts +++ b/src/client.spec.ts @@ -220,11 +220,11 @@ describe('ReactSDKClient', () => { }); }); - it('adds and removes update handlers', () => { + it('adds and removes update handlers', async () => { const instance = createInstance(config); const onUserUpdateListener = jest.fn(); const dispose = instance.onUserUpdate(onUserUpdateListener); - instance.setUser({ + await instance.setUser({ id: 'newUser', }); expect(onUserUpdateListener).toBeCalledTimes(1); @@ -233,12 +233,27 @@ describe('ReactSDKClient', () => { attributes: {}, }); dispose(); - instance.setUser({ + await instance.setUser({ id: 'newUser2', }); expect(onUserUpdateListener).toBeCalledTimes(1); }); + it('calls fetchqualifiedsegements internally on each setuser call', async () => { + const instance = createInstance(config); + jest.spyOn(instance, 'fetchQualifiedSegments').mockImplementation(async () => true); + + await instance.setUser({ + id: 'xxfueaojfe8&86', + }); + + await instance.setUser({ + id: 'xxfueaojfe8&87', + }); + + expect(instance.fetchQualifiedSegments).toBeCalledTimes(2); + }); + describe('pre-set user and user overrides', () => { let instance: ReactSDKClient; beforeEach(() => { diff --git a/src/client.ts b/src/client.ts index 5a8e31b1..c976df02 100644 --- a/src/client.ts +++ b/src/client.ts @@ -45,7 +45,7 @@ export interface ReactSDKClient extends Omit; - setUser(userInfo: UserInfo): void; + setUser(userInfo: UserInfo): Promise; onUserUpdate(handler: OnUserUpdateHandler): DisposeFn; isReady(): boolean; getIsReadyPromiseFulfilled(): boolean;