Skip to content

Commit 6dce4af

Browse files
[FSSDK-10439] missing testcases added
1 parent b23b208 commit 6dce4af

File tree

1 file changed

+80
-1
lines changed

1 file changed

+80
-1
lines changed

src/client.spec.ts

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ describe('ReactSDKClient', () => {
6767
getUserId: jest.fn(),
6868
getAttributes: jest.fn(),
6969
setForcedDecision: jest.fn(),
70+
getForcedDecision: jest.fn(),
7071
removeForcedDecision: jest.fn(),
7172
removeAllForcedDecisions: jest.fn(),
7273
} as any;
@@ -113,6 +114,7 @@ describe('ReactSDKClient', () => {
113114
jest.resetAllMocks();
114115
jest.restoreAllMocks();
115116
});
117+
116118
describe('createInstance', () => {
117119
it('provides the initial config object via the initialConfig property', () => {
118120
instance = createInstance(config);
@@ -320,6 +322,7 @@ describe('ReactSDKClient', () => {
320322
expect(instance.fetchQualifiedSegments).toHaveBeenCalledTimes(3);
321323
});
322324
});
325+
323326
describe('onUserUpdate', () => {
324327
it('adds and removes update handlers', async () => {
325328
const userId = 'newUser';
@@ -347,6 +350,48 @@ describe('ReactSDKClient', () => {
347350
});
348351
});
349352

353+
describe('getOptimizelyConfig', () => {
354+
beforeEach(async () => {
355+
await setupUserContext();
356+
const mockFn = mockInnerClient.getOptimizelyConfig as jest.Mock;
357+
mockFn.mockReturnValue({
358+
attributes: [],
359+
audiences: [],
360+
datafile: 'datafile',
361+
environmentKey: 'development',
362+
events: [],
363+
experimentsMap: {},
364+
featuresMap: {},
365+
revision: 1,
366+
sdkKey: 'sdkKey',
367+
});
368+
});
369+
370+
it('if client is null, returns null', () => {
371+
// @ts-ignore
372+
instance._client = null;
373+
const result = instance.getOptimizelyConfig();
374+
console.log(result);
375+
expect(result).toBe(null);
376+
expect(logger.warn).toHaveBeenCalled();
377+
});
378+
379+
it('returns the config object from the inner SDK', () => {
380+
const result = instance.getOptimizelyConfig();
381+
expect(result).toEqual({
382+
attributes: [],
383+
audiences: [],
384+
datafile: 'datafile',
385+
environmentKey: 'development',
386+
events: [],
387+
experimentsMap: {},
388+
featuresMap: {},
389+
revision: 1,
390+
sdkKey: 'sdkKey',
391+
});
392+
});
393+
});
394+
350395
describe('getIsUsingSdkKey', () => {
351396
it('returns true if the SDK key is being used', () => {
352397
instance = createInstance({
@@ -1037,7 +1082,7 @@ describe('ReactSDKClient', () => {
10371082
expect(result).toBe(false);
10381083
});
10391084

1040-
it('setForcedVariation returns correct value', () => {
1085+
it('setForcedVariation works as expected', () => {
10411086
const mockFn = mockInnerClient.setForcedVariation as jest.Mock;
10421087
mockFn.mockReturnValue(true);
10431088
let result = instance.setForcedVariation('exp1', 'var1');
@@ -1054,6 +1099,38 @@ describe('ReactSDKClient', () => {
10541099
});
10551100
});
10561101

1102+
describe('getForcedDecision', () => {
1103+
beforeEach(async () => {
1104+
await setupUserContext();
1105+
});
1106+
1107+
it('if user context is not set, getForcedDecision returns null', () => {
1108+
// @ts-ignore
1109+
instance.userContext = null;
1110+
const result = instance.getForcedDecision({
1111+
flagKey: 'exp1',
1112+
});
1113+
expect(logger.warn).toHaveBeenCalled();
1114+
expect(result).toBe(null);
1115+
});
1116+
1117+
it('getForcedDecision returns correct variation', () => {
1118+
const mockFn = mockOptimizelyUserContext.getForcedDecision as jest.Mock;
1119+
1120+
mockFn.mockReturnValue({
1121+
variationKey: 'var1',
1122+
});
1123+
1124+
const result = instance.getForcedDecision({
1125+
flagKey: 'exp1',
1126+
});
1127+
1128+
expect(result).toEqual({
1129+
variationKey: 'var1',
1130+
});
1131+
});
1132+
});
1133+
10571134
describe('getForcedVariation', () => {
10581135
beforeEach(async () => {
10591136
await setupUserContext();
@@ -1294,6 +1371,7 @@ describe('ReactSDKClient', () => {
12941371
expect(mockCreateUserContext).toHaveBeenCalledWith('user2', { bar: 'baz' });
12951372
});
12961373
});
1374+
12971375
describe('decideForKeys', () => {
12981376
beforeEach(async () => {
12991377
await setupUserContext();
@@ -1384,6 +1462,7 @@ describe('ReactSDKClient', () => {
13841462
expect(mockCreateUserContext).toHaveBeenCalledWith('user2', { bar: 'baz' });
13851463
});
13861464
});
1465+
13871466
describe('fetchQualifedSegments', () => {
13881467
beforeEach(() => {
13891468
instance = createInstance(config);

0 commit comments

Comments
 (0)