summaryrefslogtreecommitdiff
path: root/jstests/views
diff options
context:
space:
mode:
authorJames Wahlin <james.wahlin@10gen.com>2016-08-08 12:27:35 -0400
committerJames Wahlin <james.wahlin@10gen.com>2016-08-09 19:42:33 -0400
commit875bf157f0d16b10896528026f0e2be93c466f90 (patch)
treea35097d30807bddd98e4b8c0b68894088bb42d41 /jstests/views
parentd930f4832631eca7092ada4328d780f2b8d19d31 (diff)
downloadmongo-875bf157f0d16b10896528026f0e2be93c466f90.tar.gz
SERVER-24506 Cloner support for views
Diffstat (limited to 'jstests/views')
-rw-r--r--jstests/views/initial_sync_views.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/jstests/views/initial_sync_views.js b/jstests/views/initial_sync_views.js
new file mode 100644
index 00000000000..e5b0ffdae1f
--- /dev/null
+++ b/jstests/views/initial_sync_views.js
@@ -0,0 +1,43 @@
+/**
+ * Test initial sync with views present.
+ * @tags: [requires_persistence]
+ */
+
+(function() {
+ "use strict";
+
+ load("jstests/replsets/rslib.js");
+ let testName = "initial_sync_views";
+ let hostName = getHostName();
+
+ let replTest =
+ new ReplSetTest({name: testName, nodes: 1, nodeOptions: {setParameter: "enableViews=1"}});
+ replTest.startSet();
+ replTest.initiate();
+
+ let primaryDB = replTest.getPrimary().getDB(testName);
+
+ for (let i = 0; i < 10; ++i) {
+ assert.writeOK(primaryDB.coll.insert({a: i}));
+ }
+
+ // Setup view.
+ assert.commandWorked(
+ primaryDB.runCommand({create: "view", viewOn: "coll", pipeline: [{$match: {a: 5}}]}));
+
+ assert.eq(10, primaryDB.coll.find().itcount());
+ assert.eq(1, primaryDB.view.find().itcount());
+
+ // Add new member to the replica set and wait for initial sync to complete.
+ let secondary = replTest.add();
+ replTest.reInitiate();
+ replTest.awaitReplication();
+ replTest.awaitSecondaryNodes();
+
+ // Confirm secondary has expected collection and view document count.
+ let secondaryDB = secondary.getDB(testName);
+ assert.eq(10, secondaryDB.coll.find().itcount());
+ assert.eq(1, secondaryDB.view.find().itcount());
+
+ replTest.stopSet();
+})();