summaryrefslogtreecommitdiff
path: root/jstests/core/list_sessions.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/list_sessions.js')
-rw-r--r--jstests/core/list_sessions.js110
1 files changed, 55 insertions, 55 deletions
diff --git a/jstests/core/list_sessions.js b/jstests/core/list_sessions.js
index 9b04d3c1aa5..65345ca7c01 100644
--- a/jstests/core/list_sessions.js
+++ b/jstests/core/list_sessions.js
@@ -8,65 +8,65 @@
// Basic tests for the $listSessions aggregation stage.
(function() {
- 'use strict';
- load('jstests/aggregation/extras/utils.js');
+'use strict';
+load('jstests/aggregation/extras/utils.js');
- const admin = db.getSiblingDB('admin');
- const config = db.getSiblingDB('config');
- const pipeline = [{'$listSessions': {}}];
- function listSessions() {
- return config.system.sessions.aggregate(pipeline);
- }
+const admin = db.getSiblingDB('admin');
+const config = db.getSiblingDB('config');
+const pipeline = [{'$listSessions': {}}];
+function listSessions() {
+ return config.system.sessions.aggregate(pipeline);
+}
- // Start a new session and capture its sessionId.
- const myid = assert.commandWorked(admin.runCommand({startSession: 1})).id.id;
- assert(myid !== undefined);
+// Start a new session and capture its sessionId.
+const myid = assert.commandWorked(admin.runCommand({startSession: 1})).id.id;
+assert(myid !== undefined);
- // Sync cache to collection and ensure it arrived.
- assert.commandWorked(admin.runCommand({refreshLogicalSessionCacheNow: 1}));
- var resultArrayMine;
- assert.soon(function() {
- const resultArray = listSessions().toArray();
- if (resultArray.length < 1) {
- return false;
- }
- resultArrayMine = resultArray
- .map(function(sess) {
- return sess._id;
- })
- .filter(function(id) {
- return 0 == bsonWoCompare({x: id.id}, {x: myid});
- });
- return resultArrayMine.length == 1;
- }, "Failed to locate session in collection");
+// Sync cache to collection and ensure it arrived.
+assert.commandWorked(admin.runCommand({refreshLogicalSessionCacheNow: 1}));
+var resultArrayMine;
+assert.soon(function() {
+ const resultArray = listSessions().toArray();
+ if (resultArray.length < 1) {
+ return false;
+ }
+ resultArrayMine = resultArray
+ .map(function(sess) {
+ return sess._id;
+ })
+ .filter(function(id) {
+ return 0 == bsonWoCompare({x: id.id}, {x: myid});
+ });
+ return resultArrayMine.length == 1;
+}, "Failed to locate session in collection");
- // Try asking for the session by username.
- const myusername = (function() {
- if (0 == bsonWoCompare({x: resultArrayMine[0].uid}, {x: computeSHA256Block("")})) {
- // Code for "we're running in no-auth mode"
- return {user: "", db: ""};
- }
- const connstats = assert.commandWorked(db.runCommand({connectionStatus: 1}));
- const authUsers = connstats.authInfo.authenticatedUsers;
- assert(authUsers !== undefined);
- assert.eq(authUsers.length, 1);
- assert(authUsers[0].user !== undefined);
- assert(authUsers[0].db !== undefined);
- return {user: authUsers[0].user, db: authUsers[0].db};
- })();
- function listMySessions() {
- return config.system.sessions.aggregate([{'$listSessions': {users: [myusername]}}]);
+// Try asking for the session by username.
+const myusername = (function() {
+ if (0 == bsonWoCompare({x: resultArrayMine[0].uid}, {x: computeSHA256Block("")})) {
+ // Code for "we're running in no-auth mode"
+ return {user: "", db: ""};
}
- const myArray = listMySessions()
- .toArray()
- .map(function(sess) {
- return sess._id;
- })
- .filter(function(id) {
- return 0 == bsonWoCompare({x: id.id}, {x: myid});
- });
- assert.eq(0, bsonWoCompare(myArray, resultArrayMine));
+ const connstats = assert.commandWorked(db.runCommand({connectionStatus: 1}));
+ const authUsers = connstats.authInfo.authenticatedUsers;
+ assert(authUsers !== undefined);
+ assert.eq(authUsers.length, 1);
+ assert(authUsers[0].user !== undefined);
+ assert(authUsers[0].db !== undefined);
+ return {user: authUsers[0].user, db: authUsers[0].db};
+})();
+function listMySessions() {
+ return config.system.sessions.aggregate([{'$listSessions': {users: [myusername]}}]);
+}
+const myArray = listMySessions()
+ .toArray()
+ .map(function(sess) {
+ return sess._id;
+ })
+ .filter(function(id) {
+ return 0 == bsonWoCompare({x: id.id}, {x: myid});
+ });
+assert.eq(0, bsonWoCompare(myArray, resultArrayMine));
- // Make sure pipelining other collections fail.
- assertErrorCode(admin.system.collections, pipeline, ErrorCodes.InvalidNamespace);
+// Make sure pipelining other collections fail.
+assertErrorCode(admin.system.collections, pipeline, ErrorCodes.InvalidNamespace);
})();