1515 */
1616var AudienceEvaluator = require ( './' ) ;
1717var chai = require ( 'chai' ) ;
18- var sprintf = require ( 'sprintf-js' ) . sprintf ;
1918var conditionTreeEvaluator = require ( '../condition_tree_evaluator' ) ;
2019var customAttributeConditionEvaluator = require ( '../custom_attribute_condition_evaluator' ) ;
2120var sinon = require ( 'sinon' ) ;
@@ -54,14 +53,13 @@ var audiencesById = {
5453
5554describe ( 'lib/core/audience_evaluator' , function ( ) {
5655 var audienceEvaluator ;
56+ var mockLogger = logger . createLogger ( { logLevel : LOG_LEVEL . INFO } ) ;
5757 beforeEach ( function ( ) {
58- audienceEvaluator = new AudienceEvaluator ( ) ;
58+ audienceEvaluator = new AudienceEvaluator ( mockLogger ) ;
5959 } ) ;
6060
6161 describe ( 'APIs' , function ( ) {
6262 describe ( 'evaluate' , function ( ) {
63- var mockLogger = logger . createLogger ( { logLevel : LOG_LEVEL . INFO } ) ;
64-
6563 beforeEach ( function ( ) {
6664 sinon . stub ( mockLogger , 'log' ) ;
6765 } ) ;
@@ -71,11 +69,11 @@ describe('lib/core/audience_evaluator', function() {
7169 } ) ;
7270
7371 it ( 'should return true if there are no audiences' , function ( ) {
74- assert . isTrue ( audienceEvaluator . evaluate ( [ ] , audiencesById , { } , mockLogger ) ) ;
72+ assert . isTrue ( audienceEvaluator . evaluate ( [ ] , audiencesById , { } ) ) ;
7573 } ) ;
7674
7775 it ( 'should return false if there are audiences but no attributes' , function ( ) {
78- assert . isFalse ( audienceEvaluator . evaluate ( [ '0' ] , audiencesById , { } , mockLogger ) ) ;
76+ assert . isFalse ( audienceEvaluator . evaluate ( [ '0' ] , audiencesById , { } ) ) ;
7977 } ) ;
8078
8179 it ( 'should return true if any of the audience conditions are met' , function ( ) {
@@ -92,9 +90,9 @@ describe('lib/core/audience_evaluator', function() {
9290 'device_model' : 'iphone' ,
9391 } ;
9492
95- assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , iphoneUsers , mockLogger ) ) ;
96- assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , chromeUsers , mockLogger ) ) ;
97- assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , iphoneChromeUsers , mockLogger ) ) ;
93+ assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , iphoneUsers ) ) ;
94+ assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , chromeUsers ) ) ;
95+ assert . isTrue ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , iphoneChromeUsers ) ) ;
9896 } ) ;
9997
10098 it ( 'should return false if none of the audience conditions are met' , function ( ) {
@@ -111,13 +109,13 @@ describe('lib/core/audience_evaluator', function() {
111109 'device_model' : 'nexus5' ,
112110 } ;
113111
114- assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , nexusUsers , mockLogger ) ) ;
115- assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , safariUsers , mockLogger ) ) ;
116- assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , nexusSafariUsers , mockLogger ) ) ;
112+ assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , nexusUsers ) ) ;
113+ assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , safariUsers ) ) ;
114+ assert . isFalse ( audienceEvaluator . evaluate ( [ '0' , '1' ] , audiencesById , nexusSafariUsers ) ) ;
117115 } ) ;
118116
119117 it ( 'should return true if no attributes are passed and the audience conditions evaluate to true in the absence of attributes' , function ( ) {
120- assert . isTrue ( audienceEvaluator . evaluate ( [ '2' ] , audiencesById , null , mockLogger ) ) ;
118+ assert . isTrue ( audienceEvaluator . evaluate ( [ '2' ] , audiencesById , null ) ) ;
121119 } ) ;
122120
123121 describe ( 'complex audience conditions' , function ( ) {
@@ -204,9 +202,9 @@ describe('lib/core/audience_evaluator', function() {
204202 } ) ;
205203 customAttributeConditionEvaluator . evaluate . returns ( false ) ;
206204 var userAttributes = { device_model : 'android' } ;
207- var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes , mockLogger ) ;
205+ var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes ) ;
208206 sinon . assert . calledOnce ( customAttributeConditionEvaluator . evaluate ) ;
209- sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes , mockLogger ) ;
207+ sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes ) ;
210208 assert . isFalse ( result ) ;
211209 } ) ;
212210 } ) ;
@@ -229,9 +227,9 @@ describe('lib/core/audience_evaluator', function() {
229227 } ) ;
230228 customAttributeConditionEvaluator . evaluate . returns ( null ) ;
231229 var userAttributes = { device_model : 5.5 } ;
232- var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes , mockLogger ) ;
230+ var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes ) ;
233231 sinon . assert . calledOnce ( customAttributeConditionEvaluator . evaluate ) ;
234- sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes , mockLogger ) ;
232+ sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes ) ;
235233 assert . isFalse ( result ) ;
236234 assert . strictEqual ( 2 , mockLogger . log . callCount ) ;
237235 assert . strictEqual ( mockLogger . log . args [ 0 ] [ 1 ] , 'AUDIENCE_EVALUATOR: Starting to evaluate audience "1" with conditions: ["and",{"name":"device_model","value":"iphone","type":"custom_attribute"}].' ) ;
@@ -244,9 +242,9 @@ describe('lib/core/audience_evaluator', function() {
244242 } ) ;
245243 customAttributeConditionEvaluator . evaluate . returns ( true ) ;
246244 var userAttributes = { device_model : 'iphone' } ;
247- var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes , mockLogger ) ;
245+ var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes ) ;
248246 sinon . assert . calledOnce ( customAttributeConditionEvaluator . evaluate ) ;
249- sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes , mockLogger ) ;
247+ sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes ) ;
250248 assert . isTrue ( result ) ;
251249 assert . strictEqual ( 2 , mockLogger . log . callCount ) ;
252250 assert . strictEqual ( mockLogger . log . args [ 0 ] [ 1 ] , 'AUDIENCE_EVALUATOR: Starting to evaluate audience "1" with conditions: ["and",{"name":"device_model","value":"iphone","type":"custom_attribute"}].' ) ;
@@ -259,9 +257,9 @@ describe('lib/core/audience_evaluator', function() {
259257 } ) ;
260258 customAttributeConditionEvaluator . evaluate . returns ( false ) ;
261259 var userAttributes = { device_model : 'android' } ;
262- var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes , mockLogger ) ;
260+ var result = audienceEvaluator . evaluate ( [ 'or' , '1' ] , audiencesById , userAttributes ) ;
263261 sinon . assert . calledOnce ( customAttributeConditionEvaluator . evaluate ) ;
264- sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes , mockLogger ) ;
262+ sinon . assert . calledWithExactly ( customAttributeConditionEvaluator . evaluate , iphoneUserAudience . conditions [ 1 ] , userAttributes ) ;
265263 assert . isFalse ( result ) ;
266264 assert . strictEqual ( 2 , mockLogger . log . callCount ) ;
267265 assert . strictEqual ( mockLogger . log . args [ 0 ] [ 1 ] , 'AUDIENCE_EVALUATOR: Starting to evaluate audience "1" with conditions: ["and",{"name":"device_model","value":"iphone","type":"custom_attribute"}].' ) ;
0 commit comments