Skip to content

Commit 352137b

Browse files
authoredFeb 22, 2024··
Merge pull request #14355 from 3150/introduce_resumeTokenChanged_into_6.x
Receive resumeTokenChanged changeStream event also in 6.x
2 parents 09181ef + 34feac0 commit 352137b

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed
 

‎lib/cursor/ChangeStream.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class ChangeStream extends EventEmitter {
7575
this.closed = true;
7676
});
7777

78-
['close', 'change', 'end', 'error'].forEach(ev => {
78+
['close', 'change', 'end', 'error', 'resumeTokenChanged'].forEach(ev => {
7979
this.driverChangeStream.on(ev, data => {
8080
// Sometimes Node driver still polls after close, so
8181
// avoid any uncaught exceptions due to closed change streams

‎test/model.test.js

+14
Original file line numberDiff line numberDiff line change
@@ -5406,6 +5406,20 @@ describe('Model', function() {
54065406
assert.equal(changeData.operationType, 'insert');
54075407
assert.equal(changeData.fullDocument.name, 'Child');
54085408
});
5409+
5410+
it('bubbles up resumeTokenChanged events (gh-14349)', async function() {
5411+
const MyModel = db.model('Test', new Schema({ name: String }));
5412+
5413+
const resumeTokenChangedEvent = new Promise(resolve => {
5414+
changeStream = MyModel.watch();
5415+
listener = data => resolve(data);
5416+
changeStream.once('resumeTokenChanged', listener);
5417+
});
5418+
5419+
await MyModel.create({ name: 'test' });
5420+
const { _data } = await resumeTokenChangedEvent;
5421+
assert.ok(_data);
5422+
});
54095423
});
54105424

54115425
describe('sessions (gh-6362)', function() {

0 commit comments

Comments
 (0)
Please sign in to comment.