@@ -21,7 +21,7 @@ var errorHandler = require('../../plugins/error_handler');
21
21
var bucketer = require ( '../bucketer' ) ;
22
22
var DecisionService = require ( './' ) ;
23
23
var enums = require ( '../../utils/enums' ) ;
24
- var fns = require ( '../../utils/fns ' ) ;
24
+ var cloneDeep = require ( 'lodash/cloneDeep ' ) ;
25
25
var logger = require ( '../../plugins/logger' ) ;
26
26
var projectConfig = require ( '../project_config' ) ;
27
27
var sprintf = require ( '@optimizely/js-sdk-utils' ) . sprintf ;
@@ -40,7 +40,7 @@ var DECISION_SOURCES = enums.DECISION_SOURCES;
40
40
41
41
describe ( 'lib/core/decision_service' , function ( ) {
42
42
describe ( 'APIs' , function ( ) {
43
- var configObj = projectConfig . createProjectConfig ( testData ) ;
43
+ var configObj = projectConfig . createProjectConfig ( cloneDeep ( testData ) ) ;
44
44
var decisionServiceInstance ;
45
45
var mockLogger = logger . createLogger ( { logLevel : LOG_LEVEL . INFO } ) ;
46
46
var bucketerStub ;
@@ -860,7 +860,7 @@ describe('lib/core/decision_service', function() {
860
860
'control'
861
861
) ;
862
862
assert . strictEqual ( didSetVariation , true ) ;
863
- var newDatafile = fns . cloneDeep ( testData ) ;
863
+ var newDatafile = cloneDeep ( testData ) ;
864
864
// Remove 'control' variation from variations, traffic allocation, and datafile forcedVariations.
865
865
newDatafile . experiments [ 0 ] . variations = [
866
866
{
@@ -892,7 +892,7 @@ describe('lib/core/decision_service', function() {
892
892
'control'
893
893
) ;
894
894
assert . strictEqual ( didSetVariation , true ) ;
895
- var newConfigObj = projectConfig . createProjectConfig ( testDataWithFeatures ) ;
895
+ var newConfigObj = projectConfig . createProjectConfig ( cloneDeep ( testDataWithFeatures ) ) ;
896
896
var forcedVar = decisionServiceInstance . getForcedVariation ( newConfigObj , 'testExperiment' , 'user1' ) ;
897
897
assert . strictEqual ( forcedVar , null ) ;
898
898
} ) ;
@@ -917,7 +917,7 @@ describe('lib/core/decision_service', function() {
917
917
918
918
// TODO: Move tests that test methods of Optimizely to lib/optimizely/index.tests.js
919
919
describe ( 'when a bucketingID is provided' , function ( ) {
920
- var configObj = projectConfig . createProjectConfig ( testData ) ;
920
+ var configObj = projectConfig . createProjectConfig ( cloneDeep ( testData ) ) ;
921
921
var createdLogger = logger . createLogger ( {
922
922
logLevel : LOG_LEVEL . DEBUG ,
923
923
logToConsole : false ,
@@ -926,7 +926,7 @@ describe('lib/core/decision_service', function() {
926
926
beforeEach ( function ( ) {
927
927
optlyInstance = new Optimizely ( {
928
928
clientEngine : 'node-sdk' ,
929
- datafile : testData ,
929
+ datafile : cloneDeep ( testData ) ,
930
930
jsonSchemaValidator : jsonSchemaValidator ,
931
931
isValidInstance : true ,
932
932
logger : createdLogger ,
@@ -1050,7 +1050,7 @@ describe('lib/core/decision_service', function() {
1050
1050
1051
1051
beforeEach ( function ( ) {
1052
1052
sinon . stub ( mockLogger , 'log' ) ;
1053
- configObj = projectConfig . createProjectConfig ( testData ) ;
1053
+ configObj = projectConfig . createProjectConfig ( cloneDeep ( testData ) ) ;
1054
1054
decisionService = DecisionService . createDecisionService ( {
1055
1055
logger : mockLogger ,
1056
1056
} ) ;
@@ -1088,7 +1088,7 @@ describe('lib/core/decision_service', function() {
1088
1088
var sandbox ;
1089
1089
var mockLogger = logger . createLogger ( { logLevel : LOG_LEVEL . INFO } ) ;
1090
1090
beforeEach ( function ( ) {
1091
- configObj = projectConfig . createProjectConfig ( testDataWithFeatures ) ;
1091
+ configObj = projectConfig . createProjectConfig ( cloneDeep ( testDataWithFeatures ) ) ;
1092
1092
sandbox = sinon . sandbox . create ( ) ;
1093
1093
sandbox . stub ( mockLogger , 'log' ) ;
1094
1094
decisionServiceInstance = DecisionService . createDecisionService ( {
@@ -1978,7 +1978,7 @@ describe('lib/core/decision_service', function() {
1978
1978
var __buildBucketerParamsSpy ;
1979
1979
1980
1980
beforeEach ( function ( ) {
1981
- configObj = projectConfig . createProjectConfig ( testDataWithFeatures ) ;
1981
+ configObj = projectConfig . createProjectConfig ( cloneDeep ( testDataWithFeatures ) ) ;
1982
1982
feature = configObj . featureKeyMap . test_feature ;
1983
1983
decisionService = DecisionService . createDecisionService ( {
1984
1984
logger : logger . createLogger ( { logLevel : LOG_LEVEL . INFO } ) ,
0 commit comments