Skip to content

Commit b717a5d

Browse files
test: skip breaking csot test on latest (#4624)
Co-authored-by: bailey <[email protected]>
1 parent 1ea3a41 commit b717a5d

File tree

1 file changed

+53
-40
lines changed

1 file changed

+53
-40
lines changed

test/integration/client-side-operations-timeout/node_csot.test.ts

Lines changed: 53 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,49 +1359,62 @@ describe('CSOT driver tests', metadata, () => {
13591359
});
13601360
});
13611361

1362-
describe('Connection after timeout', { requires: { mongodb: '>=4.4' } }, function () {
1363-
let client: MongoClient;
1364-
1365-
beforeEach(async function () {
1366-
client = this.configuration.newClient({ timeoutMS: 500 });
1367-
1368-
const failpoint: FailPoint = {
1369-
configureFailPoint: 'failCommand',
1370-
mode: {
1371-
times: 1
1372-
},
1373-
data: {
1374-
failCommands: ['insert'],
1375-
blockConnection: true,
1376-
blockTimeMS: 700
1377-
}
1378-
};
1379-
1380-
await client.db('admin').command(failpoint);
1381-
});
1362+
// TODO(NODE-7118): Find a way to reimplement this test for latest server.
1363+
describe(
1364+
'Connection after timeout',
1365+
{
1366+
requires: {
1367+
// 4.4 for use of failCommands
1368+
// < 8.3 because of https://jira.mongodb.org/browse/SERVER-101116
1369+
mongodb: '>=4.4 <=8.2'
1370+
}
1371+
},
1372+
function () {
1373+
let client: MongoClient;
13821374

1383-
afterEach(async function () {
1384-
await client.close();
1385-
});
1375+
beforeEach(async function () {
1376+
client = this.configuration.newClient({ timeoutMS: 500 });
13861377

1387-
it('closes so pending messages are not read by another operation', async function () {
1388-
const cmap = [];
1389-
client.on('connectionCheckedOut', ev => cmap.push(ev));
1390-
client.on('connectionClosed', ev => cmap.push(ev));
1378+
const failpoint: FailPoint = {
1379+
configureFailPoint: 'failCommand',
1380+
mode: {
1381+
times: 1
1382+
},
1383+
data: {
1384+
failCommands: ['insert'],
1385+
blockConnection: true,
1386+
blockTimeMS: 700
1387+
}
1388+
};
13911389

1392-
const error = await client
1393-
.db('socket')
1394-
.collection('closes')
1395-
.insertOne({})
1396-
.catch(error => error);
1390+
await client.db('admin').command(failpoint);
1391+
});
13971392

1398-
expect(error).to.be.instanceOf(MongoOperationTimeoutError);
1399-
expect(cmap).to.have.lengthOf(2);
1393+
afterEach(async function () {
1394+
await client.close();
1395+
});
14001396

1401-
const [checkedOut, closed] = cmap;
1402-
expect(checkedOut).to.have.property('name', 'connectionCheckedOut');
1403-
expect(closed).to.have.property('name', 'connectionClosed');
1404-
expect(checkedOut).to.have.property('connectionId', closed.connectionId);
1405-
});
1406-
});
1397+
it('closes so pending messages are not read by another operation', async function () {
1398+
const cmap = [];
1399+
client.on('connectionCheckedOut', ev => cmap.push(ev));
1400+
client.on('connectionClosed', ev => cmap.push(ev));
1401+
1402+
const error = await client
1403+
.db('socket')
1404+
.collection('closes')
1405+
.insertOne({})
1406+
.catch(error => error);
1407+
1408+
// Note: In the case where the timeout comes from the server, the driver does not
1409+
// need to close the connection as no more potential messages are expected.
1410+
expect(error).to.be.instanceOf(MongoOperationTimeoutError);
1411+
expect(cmap).to.have.lengthOf(2);
1412+
1413+
const [checkedOut, closed] = cmap;
1414+
expect(checkedOut).to.have.property('name', 'connectionCheckedOut');
1415+
expect(closed).to.have.property('name', 'connectionClosed');
1416+
expect(checkedOut).to.have.property('connectionId', closed.connectionId);
1417+
});
1418+
}
1419+
);
14071420
});

0 commit comments

Comments
 (0)