From 01ee2f14e50667040441bd7696c48a3859b9e910 Mon Sep 17 00:00:00 2001 From: Pavel Safronov Date: Thu, 25 Sep 2025 15:24:56 -0700 Subject: [PATCH 1/3] test(NODE-7187): Migrate `test/integration/transactions` tests --- .../transactions/transactions.prose.test.ts | 3 +- .../transactions/transactions.test.ts | 31 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/test/integration/transactions/transactions.prose.test.ts b/test/integration/transactions/transactions.prose.test.ts index fa4c57bf013..79faf077c7b 100644 --- a/test/integration/transactions/transactions.prose.test.ts +++ b/test/integration/transactions/transactions.prose.test.ts @@ -1,6 +1,7 @@ +import { type ObjectId } from 'bson'; import { expect } from 'chai'; -import { type MongoClient, type ObjectId } from '../../mongodb'; +import { type MongoClient } from '../../../src/mongo_client'; const metadata: MongoDBMetadataUI = { requires: { diff --git a/test/integration/transactions/transactions.test.ts b/test/integration/transactions/transactions.test.ts index 2b84bc2e259..186ee6be2b7 100644 --- a/test/integration/transactions/transactions.test.ts +++ b/test/integration/transactions/transactions.test.ts @@ -1,14 +1,10 @@ import { expect } from 'chai'; -import { - ClientSession, - type Collection, - type CommandStartedEvent, - type MongoClient, - MongoInvalidArgumentError, - MongoNetworkError, - type ServerSessionPool -} from '../../mongodb'; +import { type CommandStartedEvent } from '../../../src/cmap/command_monitoring_events'; +import { type Collection } from '../../../src/collection'; +import { MongoInvalidArgumentError, MongoNetworkError } from '../../../src/error'; +import { type MongoClient } from '../../../src/mongo_client'; +import { ClientSession, type ServerSessionPool } from '../../../src/sessions'; import { type FailCommandFailPoint } from '../../tools/utils'; describe('Transactions', function () { @@ -55,18 +51,19 @@ describe('Transactions', function () { metadata: { requires: { topology: ['replicaset', 'sharded'] } }, - test: function (done) { + test: async function () { function fnThatReturnsBadPromise() { return Promise.reject(); } - session - .withTransaction(fnThatReturnsBadPromise) - .then(() => done(Error('Expected error'))) - .catch(err => { - expect(err).to.equal(undefined); - session.endSession(done); - }); + const err = await session.withTransaction(fnThatReturnsBadPromise).catch(err => err); + expect(err).to.equal(undefined); + await session.endSession(); + // .then(() => done(Error('Expected error'))) + // .catch(err => { + // expect(err).to.equal(undefined); + // session.endSession(done); + // }); } }); From 70dfd8493cba5024ed9f220b7b5fd4fbe8e20ce3 Mon Sep 17 00:00:00 2001 From: Pavel Safronov Date: Thu, 25 Sep 2025 15:58:10 -0700 Subject: [PATCH 2/3] remove debug statements --- test/integration/transactions/transactions.test.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/integration/transactions/transactions.test.ts b/test/integration/transactions/transactions.test.ts index 186ee6be2b7..6d3036835da 100644 --- a/test/integration/transactions/transactions.test.ts +++ b/test/integration/transactions/transactions.test.ts @@ -59,11 +59,6 @@ describe('Transactions', function () { const err = await session.withTransaction(fnThatReturnsBadPromise).catch(err => err); expect(err).to.equal(undefined); await session.endSession(); - // .then(() => done(Error('Expected error'))) - // .catch(err => { - // expect(err).to.equal(undefined); - // session.endSession(done); - // }); } }); From aeef23fafb72af5890bceb930716b5988426f16c Mon Sep 17 00:00:00 2001 From: Pavel Safronov Date: Fri, 26 Sep 2025 10:40:20 -0700 Subject: [PATCH 3/3] pr feedback --- .../transactions/transactions.test.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/test/integration/transactions/transactions.test.ts b/test/integration/transactions/transactions.test.ts index 6d3036835da..acd4579e371 100644 --- a/test/integration/transactions/transactions.test.ts +++ b/test/integration/transactions/transactions.test.ts @@ -171,23 +171,21 @@ describe('Transactions', function () { describe('startTransaction', function () { it('should not error if transactions are supported', { metadata: { requires: { topology: ['sharded'] } }, - test: function (done) { + test: async function () { const configuration = this.configuration; const client = configuration.newClient(configuration.url()); - client.connect(err => { - expect(err).to.not.exist; + await client.connect(); - const session = client.startSession(); - const db = client.db(configuration.db); - const coll = db.collection('transaction_error_test'); - coll.insertOne({ a: 1 }, err => { - expect(err).to.not.exist; - expect(() => session.startTransaction()).to.not.throw(); + const session = client.startSession(); + const db = client.db(configuration.db); + const coll = db.collection('transaction_error_test'); + await coll.insertOne({ a: 1 }); + session.startTransaction(); - session.abortTransaction(() => session.endSession(() => client.close(done))); - }); - }); + await session.abortTransaction(); + await session.endSession(); + await client.close(); } }); });