@@ -5621,6 +5621,50 @@ describe('lib/optimizely', function() {
5621
5621
) ;
5622
5622
} ) ;
5623
5623
} ) ;
5624
+
5625
+ describe ( 'with IGNORE_USER_PROFILE_SERVICE flag in decide options' , function ( ) {
5626
+ it ( 'should bypass user profile service' , function ( ) {
5627
+ var flagKey = 'feature_2' ; // embedding experiment: 'exp_no_audience'
5628
+ var variationId1 = '10418551353' ;
5629
+ var variationId2 = '10418510624' ;
5630
+ var variationKey1 = 'variation_with_traffic' ;
5631
+ var variationKey2 = 'variation_no_traffic' ;
5632
+ var mockUserProfileServiceInstance = {
5633
+ lookup : sinon . stub ( ) . returns ( {
5634
+ user_id : userId ,
5635
+ experiment_bucket_map : {
5636
+ '10420810910' : { // 'exp_no_audience'
5637
+ variation_id : variationId2 ,
5638
+ } ,
5639
+ } ,
5640
+ } ) ,
5641
+ save : sinon . stub ( )
5642
+ } ;
5643
+ var optlyInstanceWithUserProfile = new Optimizely ( {
5644
+ clientEngine : 'node-sdk' ,
5645
+ datafile : testData . getTestDecideProjectConfig ( ) ,
5646
+ errorHandler : errorHandler ,
5647
+ eventDispatcher : eventDispatcher ,
5648
+ jsonSchemaValidator : jsonSchemaValidator ,
5649
+ userProfileService : mockUserProfileServiceInstance ,
5650
+ logger : createdLogger ,
5651
+ isValidInstance : true ,
5652
+ eventBatchSize : 1 ,
5653
+ } ) ;
5654
+ var user = new OptimizelyUserContext ( {
5655
+ optimizely : optlyInstanceWithUserProfile ,
5656
+ userId
5657
+ } ) ;
5658
+ var decision1 = optlyInstanceWithUserProfile . decide ( user , flagKey ) ;
5659
+ // should return variationId2 set by UPS
5660
+ assert . equal ( variationKey2 , decision1 . variationKey ) ;
5661
+ var decision2 = optlyInstanceWithUserProfile . decide ( user , flagKey , [ OptimizelyDecideOptions . IGNORE_USER_PROFILE_SERVICE ] ) ;
5662
+ // should ignore variationId2 set by UPS and return variationId1
5663
+ assert . equal ( variationKey1 , decision2 . variationKey ) ;
5664
+ // also should not save either
5665
+ sinon . assert . notCalled ( mockUserProfileServiceInstance . save ) ;
5666
+ } ) ;
5667
+ } ) ;
5624
5668
} ) ;
5625
5669
5626
5670
describe ( '#decideForKeys' , function ( ) {
@@ -5704,7 +5748,7 @@ describe('lib/optimizely', function() {
5704
5748
it ( 'should return decision results map with only enabled flags when ENABLED_FLAGS_ONLY flag is passed in and dispatch events' , function ( ) {
5705
5749
var flagKey1 = 'feature_2' ;
5706
5750
var flagKey2 = 'feature_3' ;
5707
- var user = optlyInstance . createUserContext ( userId , { " gender" : " female" } ) ;
5751
+ var user = optlyInstance . createUserContext ( userId , { gender : ' female' } ) ;
5708
5752
var expectedVariables = optlyInstance . getAllFeatureVariables ( flagKey1 , userId ) ;
5709
5753
var decisionsMap = optlyInstance . decideForKeys ( user , [ flagKey1 , flagKey2 ] , [ OptimizelyDecideOptions . ENABLED_FLAGS_ONLY ] ) ;
5710
5754
var decision = decisionsMap [ flagKey1 ] ;
@@ -5794,7 +5838,7 @@ describe('lib/optimizely', function() {
5794
5838
it ( 'should return decision results map with only enabled flags when ENABLED_FLAGS_ONLY flag is passed in and dispatch events' , function ( ) {
5795
5839
var flagKey1 = 'feature_1' ;
5796
5840
var flagKey2 = 'feature_2' ;
5797
- var user = optlyInstance . createUserContext ( userId , { " gender" : " female" } ) ;
5841
+ var user = optlyInstance . createUserContext ( userId , { gender : ' female' } ) ;
5798
5842
var expectedVariables1 = optlyInstance . getAllFeatureVariables ( flagKey1 , userId ) ;
5799
5843
var expectedVariables2 = optlyInstance . getAllFeatureVariables ( flagKey2 , userId ) ;
5800
5844
var decisionsMap = optlyInstance . decideAll ( user , [ OptimizelyDecideOptions . ENABLED_FLAGS_ONLY ] ) ;
@@ -5849,7 +5893,7 @@ describe('lib/optimizely', function() {
5849
5893
it ( 'should return decision results map with only enabled flags and dispatch events' , function ( ) {
5850
5894
var flagKey1 = 'feature_1' ;
5851
5895
var flagKey2 = 'feature_2' ;
5852
- var user = optlyInstance . createUserContext ( userId , { " gender" : " female" } ) ;
5896
+ var user = optlyInstance . createUserContext ( userId , { gender : ' female' } ) ;
5853
5897
var expectedVariables1 = optlyInstance . getAllFeatureVariables ( flagKey1 , userId ) ;
5854
5898
var expectedVariables2 = optlyInstance . getAllFeatureVariables ( flagKey2 , userId ) ;
5855
5899
var decisionsMap = optlyInstance . decideAll ( user ) ;
@@ -5882,7 +5926,7 @@ describe('lib/optimizely', function() {
5882
5926
it ( 'should return decision results map with only enabled flags and excluded variables when EXCLUDE_VARIABLES_FLAG is passed in' , function ( ) {
5883
5927
var flagKey1 = 'feature_1' ;
5884
5928
var flagKey2 = 'feature_2' ;
5885
- var user = optlyInstance . createUserContext ( userId , { " gender" : " female" } ) ;
5929
+ var user = optlyInstance . createUserContext ( userId , { gender : ' female' } ) ;
5886
5930
var decisionsMap = optlyInstance . decideAll ( user , [ OptimizelyDecideOptions . EXCLUDE_VARIABLES ] ) ;
5887
5931
var decision1 = decisionsMap [ flagKey1 ] ;
5888
5932
var decision2 = decisionsMap [ flagKey2 ] ;
0 commit comments