Files
mongo/jstests/aggregation/sources/unionWith/unionWith_maxTimeMS.js

38 lines
891 B
JavaScript

/**
* Tests that maxTimeMS is respected even in an inner $unionWith pipeline.
*/
(function() {
"use strict";
const testDB = db.getSiblingDB(jsTestName());
const collA = testDB.A;
collA.drop();
const collB = testDB.B;
collB.drop();
for (let i = 0; i < 10; i++) {
assert.commandWorked(collA.insert({val: i}));
assert.commandWorked(collB.insert({val: i * 2}));
}
function sleepAndIncrement(val) {
sleep(2000);
return val + 1;
}
assert.commandFailedWithCode(testDB.runCommand({
aggregate: collA.getName(),
pipeline: [{
$unionWith: {
coll: collB.getName(),
pipeline: [{
$project:
{newVal: {$function: {args: ["$val"], body: sleepAndIncrement, lang: "js"}}}
}]
}
}],
cursor: {},
maxTimeMS: 3 * 1000
}),
ErrorCodes.MaxTimeMSExpired);
})();