diff options
author | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2017-08-31 21:30:23 -0400 |
---|---|---|
committer | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2017-08-31 21:30:23 -0400 |
commit | f1530d925c530004d107c56a8dd012d26304038c (patch) | |
tree | 6e467b1c720b3f1561858414523cadd8d8aff649 /jstests/noPassthrough | |
parent | 8f777fa25140ca11573a8df0287734af107e9d5a (diff) | |
download | mongo-f1530d925c530004d107c56a8dd012d26304038c.tar.gz |
SERVER-30903 Add test for shellHelper.use().
Diffstat (limited to 'jstests/noPassthrough')
-rw-r--r-- | jstests/noPassthrough/shell_helper_use_database.js | 39 |
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); +})(); |