Skip to content

Commit 79ef0e4

Browse files
committed
custom cond
1 parent 8bed868 commit 79ef0e4

File tree

2 files changed

+61
-165
lines changed

2 files changed

+61
-165
lines changed

lib/core/custom_attribute_condition_evaluator/index.tests.js

Lines changed: 60 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ import {
2323
import * as customAttributeEvaluator from './';
2424
import {
2525
MISSING_ATTRIBUTE_VALUE,
26-
OUT_OF_BOUNDS,
2726
UNEXPECTED_TYPE_NULL,
2827
} from '../../log_messages';
2928
import {
3029
UNKNOWN_MATCH_TYPE,
3130
UNEXPECTED_TYPE,
31+
OUT_OF_BOUNDS,
3232
UNEXPECTED_CONDITION_VALUE,
3333
} from '../../error_messages';
3434

@@ -218,13 +218,9 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
218218

219219
var userValue = unexpectedTypeUserAttributes[exactStringCondition.name];
220220
var userValueType = typeof userValue;
221-
sinon.assert.calledOnce(mockLogger.log);
222-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
223-
var logMessage = mockLogger.log.args[0][1];
224-
assert.strictEqual(
225-
logMessage,
226-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactStringCondition), userValueType, exactStringCondition.name)
227-
);
221+
sinon.assert.calledOnce(mockLogger.warn);
222+
223+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(exactStringCondition), userValueType, exactStringCondition.name]);
228224
});
229225

230226
it('should log and return null if the user-provided value is null', function() {
@@ -233,25 +229,17 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
233229
getMockUserContext({ favorite_constellation: null })
234230
);
235231
assert.isNull(result);
236-
sinon.assert.calledOnce(mockLogger.log);
237-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.DEBUG);
238-
var logMessage = mockLogger.log.args[0][1];
239-
assert.strictEqual(
240-
logMessage,
241-
sprintf(UNEXPECTED_TYPE_NULL, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactStringCondition), exactStringCondition.name)
242-
);
232+
sinon.assert.calledOnce(mockLogger.debug);
233+
234+
assert.deepEqual(mockLogger.debug.args[0], [UNEXPECTED_TYPE_NULL, JSON.stringify(exactStringCondition), exactStringCondition.name]);
243235
});
244236

245237
it('should log and return null if there is no user-provided value', function() {
246238
var result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(exactStringCondition, getMockUserContext({}));
247239
assert.isNull(result);
248-
sinon.assert.calledOnce(mockLogger.log);
249-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.DEBUG);
250-
var logMessage = mockLogger.log.args[0][1];
251-
assert.strictEqual(
252-
logMessage,
253-
sprintf(MISSING_ATTRIBUTE_VALUE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactStringCondition), exactStringCondition.name)
254-
);
240+
sinon.assert.calledOnce(mockLogger.debug);
241+
242+
assert.deepEqual(mockLogger.debug.args[0], [MISSING_ATTRIBUTE_VALUE, JSON.stringify(exactStringCondition), exactStringCondition.name]);
255243
});
256244

257245
it('should log and return null if the user-provided value is of an unexpected type', function() {
@@ -263,13 +251,9 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
263251
assert.isNull(result);
264252
var userValue = unexpectedTypeUserAttributes[exactStringCondition.name];
265253
var userValueType = typeof userValue;
266-
sinon.assert.calledOnce(mockLogger.log);
267-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
268-
var logMessage = mockLogger.log.args[0][1];
269-
assert.strictEqual(
270-
logMessage,
271-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactStringCondition), userValueType, exactStringCondition.name)
272-
);
254+
sinon.assert.calledOnce(mockLogger.warn);
255+
256+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(exactStringCondition), userValueType, exactStringCondition.name]);
273257
});
274258
});
275259

@@ -310,20 +294,10 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
310294
var userValueType1 = typeof userValue1;
311295
var userValue2 = unexpectedTypeUserAttributes2[exactNumberCondition.name];
312296
var userValueType2 = typeof userValue2;
313-
assert.strictEqual(2, mockLogger.log.callCount);
314-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
315-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
316-
317-
var logMessage1 = mockLogger.log.args[0][1];
318-
var logMessage2 = mockLogger.log.args[1][1];
319-
assert.strictEqual(
320-
logMessage1,
321-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactNumberCondition), userValueType1, exactNumberCondition.name)
322-
);
323-
assert.strictEqual(
324-
logMessage2,
325-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactNumberCondition), userValueType2, exactNumberCondition.name)
326-
);
297+
assert.strictEqual(2, mockLogger.warn.callCount);
298+
299+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(exactNumberCondition), userValueType1, exactNumberCondition.name]);
300+
assert.deepEqual(mockLogger.warn.args[1], [UNEXPECTED_TYPE, JSON.stringify(exactNumberCondition), userValueType2, exactNumberCondition.name]);
327301
});
328302

329303
it('should log and return null if the user-provided number value is out of bounds', function() {
@@ -336,20 +310,11 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
336310
);
337311
assert.isNull(result);
338312

339-
assert.strictEqual(2, mockLogger.log.callCount);
340-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
341-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
313+
assert.strictEqual(2, mockLogger.warn.callCount);
342314

343-
var logMessage1 = mockLogger.log.args[0][1];
344-
var logMessage2 = mockLogger.log.args[1][1];
345-
assert.strictEqual(
346-
logMessage1,
347-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactNumberCondition), exactNumberCondition.name)
348-
);
349-
assert.strictEqual(
350-
logMessage2,
351-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(exactNumberCondition), exactNumberCondition.name)
352-
);
315+
assert.deepEqual(mockLogger.warn.args[0], [OUT_OF_BOUNDS, JSON.stringify(exactNumberCondition), exactNumberCondition.name]);
316+
317+
assert.deepEqual(mockLogger.warn.args[1], [OUT_OF_BOUNDS, JSON.stringify(exactNumberCondition), exactNumberCondition.name]);
353318
});
354319

355320
it('should return null if there is no user-provided value', function() {
@@ -376,20 +341,11 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
376341
result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(invalidValueCondition2, getMockUserContext({ lasers_count: 9000 }));
377342
assert.isNull(result);
378343

379-
assert.strictEqual(2, mockLogger.log.callCount);
380-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
381-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
344+
assert.strictEqual(2, mockLogger.warn.callCount);
382345

383-
var logMessage1 = mockLogger.log.args[0][1];
384-
var logMessage2 = mockLogger.log.args[1][1];
385-
assert.strictEqual(
386-
logMessage1,
387-
sprintf(UNEXPECTED_CONDITION_VALUE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(invalidValueCondition1))
388-
);
389-
assert.strictEqual(
390-
logMessage2,
391-
sprintf(UNEXPECTED_CONDITION_VALUE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(invalidValueCondition2))
392-
);
346+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_CONDITION_VALUE, JSON.stringify(invalidValueCondition1)]);
347+
348+
assert.deepEqual(mockLogger.warn.args[1], [UNEXPECTED_CONDITION_VALUE, JSON.stringify(invalidValueCondition2)]);
393349
});
394350
});
395351

@@ -460,13 +416,9 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
460416
assert.isNull(result);
461417
var userValue = unexpectedTypeUserAttributes[substringCondition.name];
462418
var userValueType = typeof userValue;
463-
sinon.assert.calledOnce(mockLogger.log);
464-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
465-
var logMessage = mockLogger.log.args[0][1];
466-
assert.strictEqual(
467-
logMessage,
468-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(substringCondition), userValueType, substringCondition.name)
469-
);
419+
sinon.assert.calledOnce(mockLogger.warn);
420+
421+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(substringCondition), userValueType, substringCondition.name]);
470422
});
471423

472424
it('should log and return null if the condition value is not a string', function() {
@@ -479,25 +431,17 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
479431

480432
var result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(nonStringCondition, getMockUserContext({ headline_text: 'hello' }));
481433
assert.isNull(result);
482-
sinon.assert.calledOnce(mockLogger.log);
483-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
484-
var logMessage = mockLogger.log.args[0][1];
485-
assert.strictEqual(
486-
logMessage,
487-
sprintf(UNEXPECTED_CONDITION_VALUE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(nonStringCondition))
488-
);
434+
sinon.assert.calledOnce(mockLogger.warn);
435+
436+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_CONDITION_VALUE, JSON.stringify(nonStringCondition)]);
489437
});
490438

491439
it('should log and return null if the user-provided value is null', function() {
492440
var result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(substringCondition, getMockUserContext({ headline_text: null }));
493441
assert.isNull(result);
494-
sinon.assert.calledOnce(mockLogger.log);
495-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.DEBUG);
496-
var logMessage = mockLogger.log.args[0][1];
497-
assert.strictEqual(
498-
logMessage,
499-
sprintf(UNEXPECTED_TYPE_NULL, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(substringCondition), substringCondition.name)
500-
);
442+
sinon.assert.calledOnce(mockLogger.debug);
443+
444+
assert.deepEqual(mockLogger.debug.args[0], [UNEXPECTED_TYPE_NULL, JSON.stringify(substringCondition), substringCondition.name]);
501445
});
502446

503447
it('should return null if there is no user-provided value', function() {
@@ -553,20 +497,11 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
553497
var userValueType1 = typeof userValue1;
554498
var userValue2 = unexpectedTypeUserAttributes2[gtCondition.name];
555499
var userValueType2 = typeof userValue2;
556-
assert.strictEqual(2, mockLogger.log.callCount);
557-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
558-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
559-
560-
var logMessage1 = mockLogger.log.args[0][1];
561-
var logMessage2 = mockLogger.log.args[1][1];
562-
assert.strictEqual(
563-
logMessage1,
564-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(gtCondition), userValueType1, gtCondition.name)
565-
);
566-
assert.strictEqual(
567-
logMessage2,
568-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(gtCondition), userValueType2, gtCondition.name)
569-
);
500+
assert.strictEqual(2, mockLogger.warn.callCount);
501+
502+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(gtCondition), userValueType1, gtCondition.name]);
503+
504+
assert.deepEqual(mockLogger.warn.args[1], [UNEXPECTED_TYPE, JSON.stringify(gtCondition), userValueType2, gtCondition.name]);
570505
});
571506

572507
it('should log and return null if the user-provided number value is out of bounds', function() {
@@ -582,32 +517,19 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
582517
);
583518
assert.isNull(result);
584519

585-
assert.strictEqual(2, mockLogger.log.callCount);
586-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
587-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
520+
assert.strictEqual(2, mockLogger.warn.callCount);
588521

589-
var logMessage1 = mockLogger.log.args[0][1];
590-
var logMessage2 = mockLogger.log.args[1][1];
591-
assert.strictEqual(
592-
logMessage1,
593-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(gtCondition), gtCondition.name)
594-
);
595-
assert.strictEqual(
596-
logMessage2,
597-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(gtCondition), gtCondition.name)
598-
);
522+
assert.deepEqual(mockLogger.warn.args[0], [OUT_OF_BOUNDS, JSON.stringify(gtCondition), gtCondition.name]);
523+
524+
assert.deepEqual(mockLogger.warn.args[1], [OUT_OF_BOUNDS, JSON.stringify(gtCondition), gtCondition.name]);
599525
});
600526

601527
it('should log and return null if the user-provided value is null', function() {
602528
var result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(gtCondition, getMockUserContext({ meters_travelled: null }));
603529
assert.isNull(result);
604-
sinon.assert.calledOnce(mockLogger.log);
605-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.DEBUG);
606-
var logMessage = mockLogger.log.args[0][1];
607-
assert.strictEqual(
608-
logMessage,
609-
sprintf(UNEXPECTED_TYPE_NULL, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(gtCondition), gtCondition.name)
610-
);
530+
sinon.assert.calledOnce(mockLogger.debug);
531+
532+
assert.deepEqual(mockLogger.debug.args[0], [UNEXPECTED_TYPE_NULL, JSON.stringify(gtCondition), gtCondition.name]);
611533
});
612534

613535
it('should return null if there is no user-provided value', function() {
@@ -634,12 +556,9 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
634556
result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(invalidValueCondition, getMockUserContext(userAttributes));
635557
assert.isNull(result);
636558

637-
sinon.assert.calledThrice(mockLogger.log);
638-
var logMessage = mockLogger.log.args[2][1];
639-
assert.strictEqual(
640-
logMessage,
641-
sprintf(UNEXPECTED_CONDITION_VALUE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(invalidValueCondition))
642-
);
559+
sinon.assert.calledThrice(mockLogger.warn);
560+
561+
assert.deepEqual(mockLogger.warn.args[2], [UNEXPECTED_CONDITION_VALUE, JSON.stringify(invalidValueCondition)]);
643562
});
644563
});
645564

@@ -690,20 +609,10 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
690609
var userValueType1 = typeof userValue1;
691610
var userValue2 = unexpectedTypeUserAttributes2[ltCondition.name];
692611
var userValueType2 = typeof userValue2;
693-
assert.strictEqual(2, mockLogger.log.callCount);
694-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
695-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
696-
697-
var logMessage1 = mockLogger.log.args[0][1];
698-
var logMessage2 = mockLogger.log.args[1][1];
699-
assert.strictEqual(
700-
logMessage1,
701-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(ltCondition), userValueType1, ltCondition.name)
702-
);
703-
assert.strictEqual(
704-
logMessage2,
705-
sprintf(UNEXPECTED_TYPE, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(ltCondition), userValueType2, ltCondition.name)
706-
);
612+
613+
assert.strictEqual(2, mockLogger.warn.callCount);
614+
assert.deepEqual(mockLogger.warn.args[0], [UNEXPECTED_TYPE, JSON.stringify(ltCondition), userValueType1, ltCondition.name]);
615+
assert.deepEqual(mockLogger.warn.args[1], [UNEXPECTED_TYPE, JSON.stringify(ltCondition), userValueType2, ltCondition.name]);
707616
});
708617

709618
it('should log and return null if the user-provided number value is out of bounds', function() {
@@ -723,32 +632,19 @@ describe('lib/core/custom_attribute_condition_evaluator', function() {
723632
);
724633
assert.isNull(result);
725634

726-
assert.strictEqual(2, mockLogger.log.callCount);
727-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.WARNING);
728-
assert.strictEqual(mockLogger.log.args[1][0], LOG_LEVEL.WARNING);
635+
assert.strictEqual(2, mockLogger.warn.callCount);
729636

730-
var logMessage1 = mockLogger.log.args[0][1];
731-
var logMessage2 = mockLogger.log.args[1][1];
732-
assert.strictEqual(
733-
logMessage1,
734-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(ltCondition), ltCondition.name)
735-
);
736-
assert.strictEqual(
737-
logMessage2,
738-
sprintf(OUT_OF_BOUNDS, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(ltCondition), ltCondition.name)
739-
);
637+
assert.deepEqual(mockLogger.warn.args[0], [OUT_OF_BOUNDS, JSON.stringify(ltCondition), ltCondition.name]);
638+
639+
assert.deepEqual(mockLogger.warn.args[1], [OUT_OF_BOUNDS, JSON.stringify(ltCondition), ltCondition.name]);
740640
});
741641

742642
it('should log and return null if the user-provided value is null', function() {
743643
var result = customAttributeEvaluator.getEvaluator(mockLogger).evaluate(ltCondition, getMockUserContext({ meters_travelled: null }));
744644
assert.isNull(result);
745-
sinon.assert.calledOnce(mockLogger.log);
746-
assert.strictEqual(mockLogger.log.args[0][0], LOG_LEVEL.DEBUG);
747-
var logMessage = mockLogger.log.args[0][1];
748-
assert.strictEqual(
749-
logMessage,
750-
sprintf(UNEXPECTED_TYPE_NULL, 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR', JSON.stringify(ltCondition), ltCondition.name)
751-
);
645+
sinon.assert.calledOnce(mockLogger.debug);
646+
647+
assert.deepEqual(mockLogger.debug.args[0], [UNEXPECTED_TYPE_NULL, JSON.stringify(ltCondition), ltCondition.name]);
752648
});
753649

754650
it('should return null if there is no user-provided value', function() {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"clean:win": "(if exist dist rd /s/q dist)",
7575
"lint": "tsc --noEmit && eslint 'lib/**/*.js' 'lib/**/*.ts'",
7676
"test-vitest": "tsc --noEmit --p tsconfig.spec.json && vitest run",
77-
"test-mocha": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register -r lib/tests/exit_on_unhandled_rejection.js 'lib/**/*.tests.ts' 'lib/**/custom_attribute_condition_evaluator/*.tests.js'",
77+
"test-mocha": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register -r lib/tests/exit_on_unhandled_rejection.js 'lib/**/*.tests.ts' 'lib/**/**/*.tests.js'",
7878
"test": "npm run test-mocha && npm run test-vitest",
7979
"posttest": "npm run lint",
8080
"test-ci": "npm run test-xbrowser && npm run test-umdbrowser",

0 commit comments

Comments
 (0)