summaryrefslogtreecommitdiff
path: root/jstests/core/txns/shell_prompt_in_transaction.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/txns/shell_prompt_in_transaction.js')
-rw-r--r--jstests/core/txns/shell_prompt_in_transaction.js78
1 files changed, 40 insertions, 38 deletions
diff --git a/jstests/core/txns/shell_prompt_in_transaction.js b/jstests/core/txns/shell_prompt_in_transaction.js
index 019ea5595de..ab96bef95f2 100644
--- a/jstests/core/txns/shell_prompt_in_transaction.js
+++ b/jstests/core/txns/shell_prompt_in_transaction.js
@@ -2,42 +2,44 @@
// @tags: [uses_transactions]
(function() {
- "use strict";
-
- const collName = "shell_prompt_in_transaction";
-
- db.getCollection(collName).drop({writeConcern: {w: "majority"}});
- assert.commandWorked(db.runCommand({create: collName, writeConcern: {w: "majority"}}));
-
- // Override the global "db".
- const session = db.getMongo().startSession();
- db = session.getDatabase(db.getName());
- const coll = db.getCollection(collName);
-
- function simulatePrompt() {
- __promptWrapper__(defaultPrompt);
- }
-
- // Start a transaction, so the session will attach txn info to the commands running on it.
- session.startTransaction();
- jsTestLog("Run shell prompt to simulate a user hitting enter.");
- simulatePrompt();
- const doc = {_id: "shell-write"};
- assert.commandWorked(coll.insert(doc));
- assert.docEq(doc, coll.findOne());
- simulatePrompt();
- assert.commandWorked(session.abortTransaction_forTesting());
- assert.docEq(null, coll.findOne());
-
- // Start a transaction, so the session has a running transaction now.
- simulatePrompt();
- session.startTransaction();
- jsTestLog("Run shell prompt to simulate a user hitting enter.");
- simulatePrompt();
- assert.commandWorked(coll.insert(doc));
- simulatePrompt();
- assert.commandWorked(session.commitTransaction_forTesting());
- assert.docEq(doc, coll.findOne());
-
- coll.drop({writeConcern: {w: "majority"}});
+"use strict";
+
+const collName = "shell_prompt_in_transaction";
+
+db.getCollection(collName).drop({writeConcern: {w: "majority"}});
+assert.commandWorked(db.runCommand({create: collName, writeConcern: {w: "majority"}}));
+
+// Override the global "db".
+const session = db.getMongo().startSession();
+db = session.getDatabase(db.getName());
+const coll = db.getCollection(collName);
+
+function simulatePrompt() {
+ __promptWrapper__(defaultPrompt);
+}
+
+// Start a transaction, so the session will attach txn info to the commands running on it.
+session.startTransaction();
+jsTestLog("Run shell prompt to simulate a user hitting enter.");
+simulatePrompt();
+const doc = {
+ _id: "shell-write"
+};
+assert.commandWorked(coll.insert(doc));
+assert.docEq(doc, coll.findOne());
+simulatePrompt();
+assert.commandWorked(session.abortTransaction_forTesting());
+assert.docEq(null, coll.findOne());
+
+// Start a transaction, so the session has a running transaction now.
+simulatePrompt();
+session.startTransaction();
+jsTestLog("Run shell prompt to simulate a user hitting enter.");
+simulatePrompt();
+assert.commandWorked(coll.insert(doc));
+simulatePrompt();
+assert.commandWorked(session.commitTransaction_forTesting());
+assert.docEq(doc, coll.findOne());
+
+coll.drop({writeConcern: {w: "majority"}});
})();