15
15
*/
16
16
var configValidator = require ( './utils/config_validator' ) ;
17
17
var enums = require ( './utils/enums' ) ;
18
+ var logger = require ( './plugins/logger' ) ;
18
19
var Optimizely = require ( './optimizely' ) ;
19
20
var optimizelyFactory = require ( './index.browser' ) ;
20
21
var packageJSON = require ( '../package.json' ) ;
@@ -23,6 +24,7 @@ var testData = require('./tests/test_data');
23
24
24
25
var chai = require ( 'chai' ) ;
25
26
var assert = chai . assert ;
27
+ var find = require ( 'lodash/find' ) ;
26
28
var sinon = require ( 'sinon' ) ;
27
29
28
30
describe ( 'javascript-sdk' , function ( ) {
@@ -32,9 +34,13 @@ describe('javascript-sdk', function() {
32
34
describe ( 'createInstance' , function ( ) {
33
35
var fakeErrorHandler = { handleError : function ( ) { } } ;
34
36
var fakeEventDispatcher = { dispatchEvent : function ( ) { } } ;
35
- var fakeLogger = { log : function ( ) { } } ;
37
+ var silentLogger ;
36
38
37
39
beforeEach ( function ( ) {
40
+ silentLogger = logger . createLogger ( {
41
+ logLevel : enums . LOG_LEVEL . INFO ,
42
+ logToConsole : false ,
43
+ } ) ;
38
44
sinon . spy ( console , 'error' ) ;
39
45
sinon . stub ( configValidator , 'validate' ) ;
40
46
@@ -57,6 +63,7 @@ describe('javascript-sdk', function() {
57
63
assert . doesNotThrow ( function ( ) {
58
64
optimizelyFactory . createInstance ( {
59
65
datafile : { } ,
66
+ logger : silentLogger ,
60
67
} ) ;
61
68
} ) ;
62
69
} ) ;
@@ -66,7 +73,7 @@ describe('javascript-sdk', function() {
66
73
datafile : { } ,
67
74
errorHandler : fakeErrorHandler ,
68
75
eventDispatcher : fakeEventDispatcher ,
69
- logger : fakeLogger ,
76
+ logger : silentLogger ,
70
77
} ) ;
71
78
72
79
assert . instanceOf ( optlyInstance , Optimizely ) ;
@@ -77,35 +84,18 @@ describe('javascript-sdk', function() {
77
84
datafile : { } ,
78
85
errorHandler : fakeErrorHandler ,
79
86
eventDispatcher : fakeEventDispatcher ,
80
- logger : fakeLogger ,
87
+ logger : silentLogger ,
81
88
} ) ;
82
89
assert . equal ( 'javascript-sdk' , optlyInstance . clientEngine ) ;
83
90
assert . equal ( packageJSON . version , optlyInstance . clientVersion ) ;
84
91
} ) ;
85
92
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
-
103
93
it ( 'should activate with provided event dispatcher' , function ( done ) {
104
94
var optlyInstance = optimizelyFactory . createInstance ( {
105
95
datafile : testData . getTestProjectConfig ( ) ,
106
96
errorHandler : fakeErrorHandler ,
107
97
eventDispatcher : eventDispatcher ,
108
- logger : fakeLogger ,
98
+ logger : silentLogger ,
109
99
} ) ;
110
100
var activate = optlyInstance . activate ( 'testExperiment' , 'testUser' ) ;
111
101
assert . strictEqual ( activate , 'control' ) ;
@@ -117,7 +107,7 @@ describe('javascript-sdk', function() {
117
107
datafile : testData . getTestProjectConfig ( ) ,
118
108
errorHandler : fakeErrorHandler ,
119
109
eventDispatcher : eventDispatcher ,
120
- logger : fakeLogger ,
110
+ logger : silentLogger ,
121
111
} ) ;
122
112
123
113
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -133,7 +123,7 @@ describe('javascript-sdk', function() {
133
123
datafile : testData . getTestProjectConfig ( ) ,
134
124
errorHandler : fakeErrorHandler ,
135
125
eventDispatcher : eventDispatcher ,
136
- logger : fakeLogger ,
126
+ logger : silentLogger ,
137
127
} ) ;
138
128
139
129
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -155,7 +145,7 @@ describe('javascript-sdk', function() {
155
145
datafile : testData . getTestProjectConfig ( ) ,
156
146
errorHandler : fakeErrorHandler ,
157
147
eventDispatcher : eventDispatcher ,
158
- logger : fakeLogger ,
148
+ logger : silentLogger ,
159
149
} ) ;
160
150
161
151
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -178,7 +168,7 @@ describe('javascript-sdk', function() {
178
168
datafile : testData . getTestProjectConfig ( ) ,
179
169
errorHandler : fakeErrorHandler ,
180
170
eventDispatcher : eventDispatcher ,
181
- logger : fakeLogger ,
171
+ logger : silentLogger ,
182
172
} ) ;
183
173
184
174
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -203,7 +193,7 @@ describe('javascript-sdk', function() {
203
193
datafile : testData . getTestProjectConfig ( ) ,
204
194
errorHandler : fakeErrorHandler ,
205
195
eventDispatcher : eventDispatcher ,
206
- logger : fakeLogger ,
196
+ logger : silentLogger ,
207
197
} ) ;
208
198
209
199
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -228,7 +218,7 @@ describe('javascript-sdk', function() {
228
218
datafile : testData . getTestProjectConfig ( ) ,
229
219
errorHandler : fakeErrorHandler ,
230
220
eventDispatcher : eventDispatcher ,
231
- logger : fakeLogger ,
221
+ logger : silentLogger ,
232
222
} ) ;
233
223
234
224
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
@@ -250,7 +240,7 @@ describe('javascript-sdk', function() {
250
240
datafile : testData . getTestProjectConfig ( ) ,
251
241
errorHandler : fakeErrorHandler ,
252
242
eventDispatcher : eventDispatcher ,
253
- logger : fakeLogger ,
243
+ logger : silentLogger ,
254
244
} ) ;
255
245
256
246
var didSetVariation = optlyInstance . setForcedVariation ( 'testExperimentNotRunning' , 'testUser' , 'controlNotRunning' ) ;
@@ -261,6 +251,41 @@ describe('javascript-sdk', function() {
261
251
262
252
done ( ) ;
263
253
} ) ;
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
+ } ) ;
264
289
} ) ;
265
290
} ) ;
266
291
} ) ;
0 commit comments