1515 */
1616var configValidator = require ( './utils/config_validator' ) ;
1717var enums = require ( './utils/enums' ) ;
18+ var logger = require ( './plugins/logger' ) ;
1819var Optimizely = require ( './optimizely' ) ;
1920var optimizelyFactory = require ( './index.browser' ) ;
2021var packageJSON = require ( '../package.json' ) ;
@@ -23,6 +24,7 @@ var testData = require('./tests/test_data');
2324
2425var chai = require ( 'chai' ) ;
2526var assert = chai . assert ;
27+ var find = require ( 'lodash/find' ) ;
2628var sinon = require ( 'sinon' ) ;
2729
2830describe ( 'javascript-sdk' , function ( ) {
@@ -32,9 +34,13 @@ describe('javascript-sdk', function() {
3234 describe ( 'createInstance' , function ( ) {
3335 var fakeErrorHandler = { handleError : function ( ) { } } ;
3436 var fakeEventDispatcher = { dispatchEvent : function ( ) { } } ;
35- var fakeLogger = { log : function ( ) { } } ;
37+ var silentLogger ;
3638
3739 beforeEach ( function ( ) {
40+ silentLogger = logger . createLogger ( {
41+ logLevel : enums . LOG_LEVEL . INFO ,
42+ logToConsole : false ,
43+ } ) ;
3844 sinon . spy ( console , 'error' ) ;
3945 sinon . stub ( configValidator , 'validate' ) ;
4046
@@ -57,6 +63,7 @@ describe('javascript-sdk', function() {
5763 assert . doesNotThrow ( function ( ) {
5864 optimizelyFactory . createInstance ( {
5965 datafile : { } ,
66+ logger : silentLogger ,
6067 } ) ;
6168 } ) ;
6269 } ) ;
@@ -66,7 +73,7 @@ describe('javascript-sdk', function() {
6673 datafile : { } ,
6774 errorHandler : fakeErrorHandler ,
6875 eventDispatcher : fakeEventDispatcher ,
69- logger : fakeLogger ,
76+ logger : silentLogger ,
7077 } ) ;
7178
7279 assert . instanceOf ( optlyInstance , Optimizely ) ;
@@ -77,35 +84,18 @@ describe('javascript-sdk', function() {
7784 datafile : { } ,
7885 errorHandler : fakeErrorHandler ,
7986 eventDispatcher : fakeEventDispatcher ,
80- logger : fakeLogger ,
87+ logger : silentLogger ,
8188 } ) ;
8289 assert . equal ( 'javascript-sdk' , optlyInstance . clientEngine ) ;
8390 assert . equal ( packageJSON . version , optlyInstance . clientVersion ) ;
8491 } ) ;
8592
86- it ( 'should instantiate the logger with a custom logLevel when provided' , function ( ) {
87- var optlyInstance = optimizelyFactory . createInstance ( {
88- datafile : { } ,
89- logLevel : enums . LOG_LEVEL . ERROR ,
90- } ) ;
91-
92- assert . equal ( optlyInstance . logger . logLevel , enums . LOG_LEVEL . ERROR ) ;
93- } ) ;
94-
95- it ( 'should default to INFO when no logLevel is provided' , function ( ) {
96- var optlyInstance = optimizelyFactory . createInstance ( {
97- datafile : { } ,
98- } ) ;
99-
100- assert . equal ( optlyInstance . logger . logLevel , enums . LOG_LEVEL . INFO ) ;
101- } ) ;
102-
10393 it ( 'should activate with provided event dispatcher' , function ( done ) {
10494 var optlyInstance = optimizelyFactory . createInstance ( {
10595 datafile : testData . getTestProjectConfig ( ) ,
10696 errorHandler : fakeErrorHandler ,
10797 eventDispatcher : eventDispatcher ,
108- logger : fakeLogger ,
98+ logger : silentLogger ,
10999 } ) ;
110100 var activate = optlyInstance . activate ( 'testExperiment' , 'testUser' ) ;
111101 assert . strictEqual ( activate , 'control' ) ;
@@ -117,7 +107,7 @@ describe('javascript-sdk', function() {
117107 datafile : testData . getTestProjectConfig ( ) ,
118108 errorHandler : fakeErrorHandler ,
119109 eventDispatcher : eventDispatcher ,
120- logger : fakeLogger ,
110+ logger : silentLogger ,
121111 } ) ;
122112
123113 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -133,7 +123,7 @@ describe('javascript-sdk', function() {
133123 datafile : testData . getTestProjectConfig ( ) ,
134124 errorHandler : fakeErrorHandler ,
135125 eventDispatcher : eventDispatcher ,
136- logger : fakeLogger ,
126+ logger : silentLogger ,
137127 } ) ;
138128
139129 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -155,7 +145,7 @@ describe('javascript-sdk', function() {
155145 datafile : testData . getTestProjectConfig ( ) ,
156146 errorHandler : fakeErrorHandler ,
157147 eventDispatcher : eventDispatcher ,
158- logger : fakeLogger ,
148+ logger : silentLogger ,
159149 } ) ;
160150
161151 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -178,7 +168,7 @@ describe('javascript-sdk', function() {
178168 datafile : testData . getTestProjectConfig ( ) ,
179169 errorHandler : fakeErrorHandler ,
180170 eventDispatcher : eventDispatcher ,
181- logger : fakeLogger ,
171+ logger : silentLogger ,
182172 } ) ;
183173
184174 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -203,7 +193,7 @@ describe('javascript-sdk', function() {
203193 datafile : testData . getTestProjectConfig ( ) ,
204194 errorHandler : fakeErrorHandler ,
205195 eventDispatcher : eventDispatcher ,
206- logger : fakeLogger ,
196+ logger : silentLogger ,
207197 } ) ;
208198
209199 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -228,7 +218,7 @@ describe('javascript-sdk', function() {
228218 datafile : testData . getTestProjectConfig ( ) ,
229219 errorHandler : fakeErrorHandler ,
230220 eventDispatcher : eventDispatcher ,
231- logger : fakeLogger ,
221+ logger : silentLogger ,
232222 } ) ;
233223
234224 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -250,7 +240,7 @@ describe('javascript-sdk', function() {
250240 datafile : testData . getTestProjectConfig ( ) ,
251241 errorHandler : fakeErrorHandler ,
252242 eventDispatcher : eventDispatcher ,
253- logger : fakeLogger ,
243+ logger : silentLogger ,
254244 } ) ;
255245
256246 var didSetVariation = optlyInstance . setForcedVariation ( 'testExperimentNotRunning' , 'testUser' , 'controlNotRunning' ) ;
@@ -261,6 +251,41 @@ describe('javascript-sdk', function() {
261251
262252 done ( ) ;
263253 } ) ;
254+
255+ describe ( 'automatically created logger instances' , function ( ) {
256+ beforeEach ( function ( ) {
257+ sinon . stub ( logger , 'createLogger' ) . callsFake ( function ( ) {
258+ return {
259+ log : function ( ) { } ,
260+ } ;
261+ } ) ;
262+ } ) ;
263+
264+ afterEach ( function ( ) {
265+ logger . createLogger . restore ( ) ;
266+ } ) ;
267+
268+ it ( 'should instantiate the logger with a custom logLevel when provided' , function ( ) {
269+ var optlyInstance = optimizelyFactory . createInstance ( {
270+ datafile : testData . getTestProjectConfig ( ) ,
271+ logLevel : enums . LOG_LEVEL . ERROR ,
272+ } ) ;
273+ var foundCall = find ( logger . createLogger . getCalls ( ) , function ( call ) {
274+ return call . returned ( sinon . match . same ( optlyInstance . logger ) ) ;
275+ } ) ;
276+ assert . strictEqual ( foundCall . args [ 0 ] . logLevel , enums . LOG_LEVEL . ERROR ) ;
277+ } ) ;
278+
279+ it ( 'should default to INFO when no logLevel is provided' , function ( ) {
280+ var optlyInstance = optimizelyFactory . createInstance ( {
281+ datafile : testData . getTestProjectConfig ( ) ,
282+ } ) ;
283+ var foundCall = find ( logger . createLogger . getCalls ( ) , function ( call ) {
284+ return call . returned ( sinon . match . same ( optlyInstance . logger ) ) ;
285+ } ) ;
286+ assert . strictEqual ( foundCall . args [ 0 ] . logLevel , enums . LOG_LEVEL . INFO ) ;
287+ } ) ;
288+ } ) ;
264289 } ) ;
265290 } ) ;
266291} ) ;
0 commit comments