Skip to content

Commit 4ac9675

Browse files
authored
test(NODE-5962): gossip cluster time in utr (#4019)
1 parent 057c223 commit 4ac9675

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

test/integration/transactions-convenient-api/transactions-convenient-api.spec.test.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,8 @@ import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner';
55

66
const SKIPPED_TESTS = [
77
'callback succeeds after multiple connection errors',
8-
'callback is not retried after non-transient error',
98
'callback is not retried after non-transient error (DuplicateKeyError)',
10-
'withTransaction succeeds if callback aborts',
11-
'unpin after transient error within a transaction',
12-
'withTransaction succeeds if callback commits',
13-
'withTransaction still succeeds if callback aborts and runs extra op',
14-
'withTransaction still succeeds if callback commits and runs extra op',
15-
'withTransaction commits after callback returns (second transaction)',
16-
'withTransaction commits after callback returns',
17-
'withTransaction and no transaction options set',
18-
'withTransaction inherits transaction options from defaultTransactionOptions',
19-
'withTransaction explicit transaction options override defaultTransactionOptions',
20-
'withTransaction explicit transaction options'
9+
'withTransaction succeeds if callback aborts'
2110
];
2211

2312
describe('Transactions Convenient API Spec Unified Tests', function () {
@@ -33,7 +22,7 @@ describe('Transactions Convenient API Spec Unified Tests', function () {
3322

3423
runUnifiedSuite(loadSpecTests(path.join('transactions-convenient-api', 'unified')), test => {
3524
return SKIPPED_TESTS.includes(test.description)
36-
? 'TODO(NODE-5855/DRIVERS-2816): Skipping failing transaction tests'
25+
? 'TODO(NODE-5855): Skipping failing transaction tests'
3726
: false;
3827
});
3928
});

test/tools/unified-spec-runner/entities.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
ChangeStream,
88
ClientEncryption,
99
ClientSession,
10+
type ClusterTime,
1011
Collection,
1112
type CommandFailedEvent,
1213
type CommandStartedEvent,
@@ -556,6 +557,7 @@ export class EntitiesMap<E = Entity> extends Map<string, E> {
556557

557558
static async createEntities(
558559
config: TestConfiguration,
560+
clusterTime: ClusterTime | null,
559561
entities?: EntityDescription[],
560562
entityMap?: EntitiesMap
561563
): Promise<EntitiesMap> {
@@ -627,6 +629,10 @@ export class EntitiesMap<E = Entity> extends Map<string, E> {
627629
}
628630
}
629631
const session = client.startSession(options);
632+
// Advance the session cluster time. See DRIVERS-2816.
633+
if (clusterTime) {
634+
session.advanceClusterTime(clusterTime);
635+
}
630636
map.set(entity.session.id, session);
631637
} else if ('bucket' in entity) {
632638
const db = map.getEntity('db', entity.bucket.database);

test/tools/unified-spec-runner/operations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ operations.set('createEntities', async ({ entities, operation, testConfig }) =>
4545
if (!operation.arguments?.entities) {
4646
throw new Error('encountered createEntities operation without entities argument');
4747
}
48-
await EntitiesMap.createEntities(testConfig, operation.arguments.entities!, entities);
48+
await EntitiesMap.createEntities(testConfig, null, operation.arguments.entities!, entities);
4949
});
5050

5151
operations.set('abortTransaction', async ({ entities, operation }) => {

test/tools/unified-spec-runner/runner.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,15 @@ async function runUnifiedTest(
160160
}
161161
}
162162

163+
const ping = await utilClient.db().admin().command({ ping: 1 });
164+
const clusterTime = ping.$clusterTime;
165+
163166
trace('createEntities');
164-
entities = await EntitiesMap.createEntities(ctx.configuration, unifiedSuite.createEntities);
167+
entities = await EntitiesMap.createEntities(
168+
ctx.configuration,
169+
clusterTime,
170+
unifiedSuite.createEntities
171+
);
165172

166173
// Workaround for SERVER-39704:
167174
// test runners MUST execute a non-transactional distinct command on

0 commit comments

Comments
 (0)