Files
mongo/jstests/replsets/pipelineout.js
Kaloian Manassiev c078dc37a9 SERVER-21050 Cleanup ReplSetTest
This is just a cleanup work to hide some of the private state of
ReplSetTest so it is easier to encapsulate and add new logic. Also enables
strict mode.
2015-12-08 13:15:06 -05:00

37 lines
1.1 KiB
JavaScript

// test $out in a replicated environment
var name = "pipelineout";
var replTest = new ReplSetTest( {name: name, nodes: 2} );
var nodes = replTest.nodeList();
replTest.startSet();
replTest.initiate({"_id" : name,
"members" : [
{"_id" : 0, "host" : nodes[0]},
{"_id" : 1, "host" : nodes[1]}
]});
var primary = replTest.getPrimary().getDB(name);
var secondary = replTest.liveNodes.slaves[0].getDB(name);
// populate the collection
for (i=0; i<5; i++) {
primary.in.insert({x:i});
}
replTest.awaitReplication();
// make sure $out cannot be run on a secondary
assert.throws(function() {
secondary.in.aggregate({$out: "out"}).itcount;
});
// even if slaveOk
secondary.setSlaveOk();
assert.throws(function() {
secondary.in.aggregate({$out: "out"}).itcount;
});
// run one and check for proper replication
primary.in.aggregate({$out: "out"}).itcount;
replTest.awaitReplication();
assert.eq(primary.out.find().sort( { x : 1 } ).toArray(),
secondary.out.find().sort( { x : 1 } ).toArray());