mongo/jstests/aggregation/expressions/all_elements_true.js

23 lines
930 B
JavaScript

/**
* Basic test coverage for the $allElementsTrue expression.
*/
const coll = db.all_elements_true;
coll.drop();
assert.commandWorked(coll.insert({_id: 0, allTrue: [true, true], someTrue: [true, false], noneTrue: [0, false]}));
function testOp(expression, expected) {
const results = coll.aggregate([{$project: {_id: 0, result: expression}}]).toArray();
assert.eq(results.length, 1, results);
const loneResult = results[0];
assert(loneResult.hasOwnProperty("result"));
assert.eq(loneResult.result, expected, loneResult);
}
testOp({$allElementsTrue: {$literal: [true, true]}}, true);
testOp({$allElementsTrue: {$literal: [1, true]}}, true);
testOp({$allElementsTrue: {$literal: [true, 0]}}, false);
testOp({$allElementsTrue: {$literal: [true, 1, false]}}, false);
testOp({$allElementsTrue: "$allTrue"}, true);
testOp({$allElementsTrue: "$someTrue"}, false);
testOp({$allElementsTrue: "$noneTrue"}, false);