@@ -63,20 +63,20 @@ var audiencesById = {
63
63
describe ( 'lib/core/audience_evaluator' , function ( ) {
64
64
var audienceEvaluator ;
65
65
66
+ beforeEach ( function ( ) {
67
+ sinon . stub ( mockLogger , 'log' ) ;
68
+ } ) ;
69
+
70
+ afterEach ( function ( ) {
71
+ mockLogger . log . restore ( ) ;
72
+ } ) ;
73
+
66
74
describe ( 'APIs' , function ( ) {
67
75
context ( 'with default condition evaluator' , function ( ) {
68
76
beforeEach ( function ( ) {
69
77
audienceEvaluator = new AudienceEvaluator ( ) ;
70
78
} ) ;
71
- describe ( 'evaluate' , function ( ) {
72
- beforeEach ( function ( ) {
73
- sinon . stub ( mockLogger , 'log' ) ;
74
- } ) ;
75
-
76
- afterEach ( function ( ) {
77
- mockLogger . log . restore ( ) ;
78
- } ) ;
79
-
79
+ describe ( 'evaluate' , function ( ) {
80
80
it ( 'should return true if there are no audiences' , function ( ) {
81
81
assert . isTrue ( audienceEvaluator . evaluate ( [ ] , audiencesById , { } ) ) ;
82
82
} ) ;
@@ -282,8 +282,10 @@ describe('lib/core/audience_evaluator', function() {
282
282
} ;
283
283
audienceEvaluator = new AudienceEvaluator ( {
284
284
special_condition_type : {
285
- evaluate : function ( condition , userAttributes ) {
286
- return mockEnvironment [ condition . value ] && userAttributes [ condition . match ] > 0 ;
285
+ evaluate : function ( condition , userAttributes , logger ) {
286
+ const result = mockEnvironment [ condition . value ] && userAttributes [ condition . match ] > 0 ;
287
+ logger . log ( `special_condition_type: ${ result } for ${ condition . value } :${ condition . match } ` )
288
+ return result ;
287
289
}
288
290
} ,
289
291
} ) ;
@@ -293,6 +295,13 @@ describe('lib/core/audience_evaluator', function() {
293
295
assert . isFalse ( audienceEvaluator . evaluate ( [ '3' ] , audiencesById , { interest_level : 0 } ) ) ;
294
296
assert . isTrue ( audienceEvaluator . evaluate ( [ '3' ] , audiencesById , { interest_level : 1 } ) ) ;
295
297
} )
298
+
299
+ it ( 'should pass the logger instance to the custom condition evaluator' , function ( ) {
300
+ assert . isFalse ( audienceEvaluator . evaluate ( [ '3' ] , audiencesById , { interest_level : 0 } ) ) ;
301
+ assert . isTrue ( audienceEvaluator . evaluate ( [ '3' ] , audiencesById , { interest_level : 1 } ) ) ;
302
+ sinon . assert . calledWithExactly ( mockLogger . log , 'special_condition_type: false for special:interest_level' ) ;
303
+ sinon . assert . calledWithExactly ( mockLogger . log , 'special_condition_type: true for special:interest_level' ) ;
304
+ } )
296
305
} )
297
306
298
307
describe ( 'when passing an invalid additional evaluator' , function ( ) {
0 commit comments