@@ -67,6 +67,7 @@ describe('ReactSDKClient', () => {
67
67
getUserId : jest . fn ( ) ,
68
68
getAttributes : jest . fn ( ) ,
69
69
setForcedDecision : jest . fn ( ) ,
70
+ getForcedDecision : jest . fn ( ) ,
70
71
removeForcedDecision : jest . fn ( ) ,
71
72
removeAllForcedDecisions : jest . fn ( ) ,
72
73
} as any ;
@@ -113,6 +114,7 @@ describe('ReactSDKClient', () => {
113
114
jest . resetAllMocks ( ) ;
114
115
jest . restoreAllMocks ( ) ;
115
116
} ) ;
117
+
116
118
describe ( 'createInstance' , ( ) => {
117
119
it ( 'provides the initial config object via the initialConfig property' , ( ) => {
118
120
instance = createInstance ( config ) ;
@@ -320,6 +322,7 @@ describe('ReactSDKClient', () => {
320
322
expect ( instance . fetchQualifiedSegments ) . toHaveBeenCalledTimes ( 3 ) ;
321
323
} ) ;
322
324
} ) ;
325
+
323
326
describe ( 'onUserUpdate' , ( ) => {
324
327
it ( 'adds and removes update handlers' , async ( ) => {
325
328
const userId = 'newUser' ;
@@ -347,6 +350,48 @@ describe('ReactSDKClient', () => {
347
350
} ) ;
348
351
} ) ;
349
352
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
+
350
395
describe ( 'getIsUsingSdkKey' , ( ) => {
351
396
it ( 'returns true if the SDK key is being used' , ( ) => {
352
397
instance = createInstance ( {
@@ -1037,7 +1082,7 @@ describe('ReactSDKClient', () => {
1037
1082
expect ( result ) . toBe ( false ) ;
1038
1083
} ) ;
1039
1084
1040
- it ( 'setForcedVariation returns correct value ' , ( ) => {
1085
+ it ( 'setForcedVariation works as expected ' , ( ) => {
1041
1086
const mockFn = mockInnerClient . setForcedVariation as jest . Mock ;
1042
1087
mockFn . mockReturnValue ( true ) ;
1043
1088
let result = instance . setForcedVariation ( 'exp1' , 'var1' ) ;
@@ -1054,6 +1099,38 @@ describe('ReactSDKClient', () => {
1054
1099
} ) ;
1055
1100
} ) ;
1056
1101
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
+
1057
1134
describe ( 'getForcedVariation' , ( ) => {
1058
1135
beforeEach ( async ( ) => {
1059
1136
await setupUserContext ( ) ;
@@ -1294,6 +1371,7 @@ describe('ReactSDKClient', () => {
1294
1371
expect ( mockCreateUserContext ) . toHaveBeenCalledWith ( 'user2' , { bar : 'baz' } ) ;
1295
1372
} ) ;
1296
1373
} ) ;
1374
+
1297
1375
describe ( 'decideForKeys' , ( ) => {
1298
1376
beforeEach ( async ( ) => {
1299
1377
await setupUserContext ( ) ;
@@ -1384,6 +1462,7 @@ describe('ReactSDKClient', () => {
1384
1462
expect ( mockCreateUserContext ) . toHaveBeenCalledWith ( 'user2' , { bar : 'baz' } ) ;
1385
1463
} ) ;
1386
1464
} ) ;
1465
+
1387
1466
describe ( 'fetchQualifedSegments' , ( ) => {
1388
1467
beforeEach ( ( ) => {
1389
1468
instance = createInstance ( config ) ;
0 commit comments