summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Hirschhorn <max.hirschhorn@mongodb.com>2017-08-31 21:30:23 -0400
committerMax Hirschhorn <max.hirschhorn@mongodb.com>2017-08-31 21:30:23 -0400
commitf1530d925c530004d107c56a8dd012d26304038c (patch)
tree6e467b1c720b3f1561858414523cadd8d8aff649
parent8f777fa25140ca11573a8df0287734af107e9d5a (diff)
downloadmongo-f1530d925c530004d107c56a8dd012d26304038c.tar.gz
SERVER-30903 Add test for shellHelper.use().
-rw-r--r--jstests/noPassthrough/shell_helper_use_database.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/jstests/noPassthrough/shell_helper_use_database.js b/jstests/noPassthrough/shell_helper_use_database.js
new file mode 100644
index 00000000000..553e6df34d9
--- /dev/null
+++ b/jstests/noPassthrough/shell_helper_use_database.js
@@ -0,0 +1,39 @@
+/**
+ * Tests that shellHelper.use() updates the global 'db' object.
+ */
+
+// We explicitly declare the global 'db' object since the rest of the test runs with strict-mode
+// enabled.
+var db;
+
+(function() {
+ "use strict";
+
+ const conn = MongoRunner.runMongod({});
+ assert.neq(null, conn, "mongod was unable to start up");
+
+ db = conn.getDB("db1");
+ assert.eq("db1", db.getName());
+
+ // Tests that shellHelper.use() updates the global 'db' object to refer to a DB object with the
+ // database name specified.
+ shellHelper.use("db2");
+ assert.eq("db2", db.getName());
+
+ // Replace the global 'db' object with a DB object from a new session and verify that
+ // shellHelper.use() still works.
+ db = conn.startSession().getDatabase("db1");
+ assert.eq("db1", db.getName());
+
+ const session = db.getSession();
+
+ // Tests that shellHelper.use() updates the global 'db' object to refer to a DB object with the
+ // database name specified. The DB objects should have the same underlying DriverSession object.
+ shellHelper.use("db2");
+ assert.eq("db2", db.getName());
+
+ assert(session === db.getSession(), "session wasn't inherited as part of switching databases");
+
+ session.endSession();
+ MongoRunner.stopMongod(conn);
+})();