diff options
Diffstat (limited to 'jstests/core/txns/shell_prompt_in_transaction.js')
-rw-r--r-- | jstests/core/txns/shell_prompt_in_transaction.js | 78 |
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"}}); })(); |