12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- var assert = require("assert"),
- CoerceToBoolExpression = require("../../../../lib/pipeline/expressions/CoerceToBoolExpression"),
- FieldPathExpression = require("../../../../lib/pipeline/expressions/FieldPathExpression"),
- ConstantExpression = require("../../../../lib/pipeline/expressions/ConstantExpression");
- module.exports = {
- "CoerceToBoolExpression": {
- "constructor()": {
- "should throw Error if no args": function construct(){
- assert.throws(function(){
- new CoerceToBoolExpression();
- });
- }
- },
- "#evaluate()": {
- "should return true if nested expression is coerced to true; {$const:5}": function testEvaluateTrue(){
- var expr = new CoerceToBoolExpression(new ConstantExpression(5));
- assert.equal(expr.evaluate({}), true);
- },
- "should return false if nested expression is coerced to false; {$const:0}": function testEvaluateFalse(){
- var expr = new CoerceToBoolExpression(new ConstantExpression(0));
- assert.equal(expr.evaluate({}), false);
- }
- },
- "#addDependencies()": {
- "should forward dependencies of nested expression": function testDependencies(){
- var expr = new CoerceToBoolExpression(new FieldPathExpression('a.b')),
- deps = expr.addDependencies([]);
- assert.equal(deps.length, 1);
- assert.equal(deps[0], 'a.b');
- }
- },
- "#toJson()": {
- "should serialize as $and which will coerceToBool; '$foo'": function(){
- var expr = new CoerceToBoolExpression(new FieldPathExpression('foo'));
- assert.deepEqual(expr.toJson(), {$and:['$foo']});
- }
- }
- }
- };
- if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run(process.exit);
|