summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/shell_helper_use_database.js
blob: 4fe5eea737add2252c459bc3fe4b77adcaa3013c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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);
})();