summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
Diffstat (limited to 'jstests')
-rw-r--r--jstests/change_streams/change_stream.js30
-rw-r--r--jstests/change_streams/change_stream_invalidation.js5
-rw-r--r--jstests/change_streams/lookup_post_image.js8
-rw-r--r--jstests/change_streams/only_wake_getmore_for_relevant_changes.js5
-rw-r--r--jstests/libs/change_stream_util.js8
5 files changed, 18 insertions, 38 deletions
diff --git a/jstests/change_streams/change_stream.js b/jstests/change_streams/change_stream.js
index 9ac347f406b..c1415a2a1f5 100644
--- a/jstests/change_streams/change_stream.js
+++ b/jstests/change_streams/change_stream.js
@@ -16,10 +16,6 @@
assert.writeOK(db.t1.insert({_id: 0, a: 1}));
const t1Uuid = getUUIDFromListCollections(db, db.t1.getName());
let expected = {
- _id: {
- documentKey: {_id: 0},
- uuid: t1Uuid,
- },
documentKey: {_id: 0},
fullDocument: {_id: 0, a: 1},
ns: {db: "test", coll: "t1"},
@@ -35,10 +31,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.insert({_id: 1, a: 2}));
expected = {
- _id: {
- documentKey: {_id: 1},
- uuid: t1Uuid,
- },
documentKey: {_id: 1},
fullDocument: {_id: 1, a: 2},
ns: {db: "test", coll: "t1"},
@@ -50,7 +42,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.update({_id: 0}, {a: 3}));
expected = {
- _id: {documentKey: {_id: 0}, uuid: t1Uuid},
documentKey: {_id: 0},
fullDocument: {_id: 0, a: 3},
ns: {db: "test", coll: "t1"},
@@ -62,7 +53,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.update({_id: 0}, {b: 3}));
expected = {
- _id: {documentKey: {_id: 0}, uuid: t1Uuid},
documentKey: {_id: 0},
fullDocument: {_id: 0, b: 3},
ns: {db: "test", coll: "t1"},
@@ -74,10 +64,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.update({_id: 2}, {a: 4}, {upsert: true}));
expected = {
- _id: {
- documentKey: {_id: 2},
- uuid: t1Uuid,
- },
documentKey: {_id: 2},
fullDocument: {_id: 2, a: 4},
ns: {db: "test", coll: "t1"},
@@ -90,7 +76,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.update({_id: 3}, {$inc: {b: 2}}));
expected = {
- _id: {documentKey: {_id: 3}, uuid: t1Uuid},
documentKey: {_id: 3},
ns: {db: "test", coll: "t1"},
operationType: "update",
@@ -102,7 +87,6 @@
cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t1});
assert.writeOK(db.t1.remove({_id: 1}));
expected = {
- _id: {documentKey: {_id: 1}, uuid: t1Uuid},
documentKey: {_id: 1},
ns: {db: "test", coll: "t1"},
operationType: "delete",
@@ -116,10 +100,6 @@
const t2Uuid = getUUIDFromListCollections(db, db.t2.getName());
cst.assertNextChangesEqual({cursor: cursor, expectedChanges: []});
expected = {
- _id: {
- documentKey: {_id: 100},
- uuid: t2Uuid,
- },
documentKey: {_id: 100},
fullDocument: {_id: 100, c: 1},
ns: {db: "test", coll: "t2"},
@@ -136,7 +116,7 @@
db.t3.drop();
t2cursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: db.t2});
assert.writeOK(db.t2.renameCollection("t3"));
- expected = {_id: {uuid: t2Uuid}, operationType: "invalidate"};
+ expected = {operationType: "invalidate"};
cst.assertNextChangesEqual(
{cursor: t2cursor, expectedChanges: [expected], expectInvalidate: true});
@@ -169,7 +149,7 @@
// Note we do not project away 'id.ts' as it is part of the resume token.
let resumeCursor = cst.startWatchingChanges(
- {pipeline: [{$changeStream: {}}], collection: db.resume1, includeTs: true});
+ {pipeline: [{$changeStream: {}}], collection: db.resume1, includeToken: true});
// Insert a document and save the resulting change stream.
assert.writeOK(db.resume1.insert({_id: 1}));
@@ -180,7 +160,7 @@
resumeCursor = cst.startWatchingChanges({
pipeline: [{$changeStream: {resumeAfter: firstInsertChangeDoc._id}}],
collection: db.resume1,
- includeTs: true,
+ includeToken: true,
aggregateOptions: {cursor: {batchSize: 0}},
});
@@ -196,7 +176,7 @@
resumeCursor = cst.startWatchingChanges({
pipeline: [{$changeStream: {resumeAfter: firstInsertChangeDoc._id}}],
collection: db.resume1,
- includeTs: true,
+ includeToken: true,
aggregateOptions: {cursor: {batchSize: 0}},
});
assert.docEq(cst.getOneChange(resumeCursor), secondInsertChangeDoc);
@@ -206,7 +186,7 @@
resumeCursor = cst.startWatchingChanges({
pipeline: [{$changeStream: {resumeAfter: secondInsertChangeDoc._id}}],
collection: db.resume1,
- includeTs: true,
+ includeToken: true,
aggregateOptions: {cursor: {batchSize: 0}},
});
assert.docEq(cst.getOneChange(resumeCursor), thirdInsertChangeDoc);
diff --git a/jstests/change_streams/change_stream_invalidation.js b/jstests/change_streams/change_stream_invalidation.js
index d6aa05c57cb..8c4c1af2437 100644
--- a/jstests/change_streams/change_stream_invalidation.js
+++ b/jstests/change_streams/change_stream_invalidation.js
@@ -42,7 +42,7 @@
assert.eq(change.operationType, "delete", tojson(change));
cst.assertNextChangesEqual({
cursor: aggcursor,
- expectedChanges: [{_id: {uuid: collGetMoreUuid}, operationType: "invalidate"}],
+ expectedChanges: [{operationType: "invalidate"}],
expectInvalidate: true
});
@@ -51,7 +51,8 @@
db.createCollection(collAgg.getName());
const collAggUuid = getUUIDFromListCollections(db, collAgg.getName());
// Get a valid resume token that the next aggregate command can use.
- aggcursor = cst.startWatchingChanges({pipeline: [{$changeStream: {}}], collection: collAgg});
+ aggcursor = cst.startWatchingChanges(
+ {pipeline: [{$changeStream: {}}], collection: collAgg, includeToken: true});
assert.writeOK(collAgg.insert({_id: 1}, {writeConcern: {w: "majority"}}));
diff --git a/jstests/change_streams/lookup_post_image.js b/jstests/change_streams/lookup_post_image.js
index ee5d90bf158..0f75ad073e9 100644
--- a/jstests/change_streams/lookup_post_image.js
+++ b/jstests/change_streams/lookup_post_image.js
@@ -17,7 +17,7 @@
// Test that not specifying 'fullDocument' does include a 'fullDocument' in the result for an
// insert.
let cursor = cst.startWatchingChanges(
- {pipeline: [{$changeStream: {}}], collection: coll, includeTs: true});
+ {pipeline: [{$changeStream: {}}], collection: coll, includeToken: true});
assert.writeOK(coll.insert({_id: "fullDocument not specified"}));
let latestChange = cst.getOneChange(cursor);
assert.eq(latestChange.operationType, "insert");
@@ -45,7 +45,7 @@
cursor = cst.startWatchingChanges({
collection: coll,
pipeline: [{$changeStream: {fullDocument: "default"}}],
- includeTs: true
+ includeToken: true
});
assert.writeOK(coll.insert({_id: "fullDocument is default"}));
latestChange = cst.getOneChange(cursor);
@@ -74,7 +74,7 @@
cursor = cst.startWatchingChanges({
collection: coll,
pipeline: [{$changeStream: {fullDocument: "updateLookup"}}],
- includeTs: true
+ includeToken: true
});
assert.writeOK(coll.insert({_id: "fullDocument is lookup"}));
latestChange = cst.getOneChange(cursor);
@@ -103,7 +103,7 @@
collection: coll,
pipeline:
[{$changeStream: {fullDocument: "updateLookup"}}, {$match: {operationType: "update"}}],
- includeTs: true
+ includeToken: true
});
assert.writeOK(coll.update({_id: "fullDocument is lookup"}, {$set: {updatedAgain: true}}));
assert.writeOK(coll.remove({_id: "fullDocument is lookup"}));
diff --git a/jstests/change_streams/only_wake_getmore_for_relevant_changes.js b/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
index 87c082199b7..f7d909f039f 100644
--- a/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
+++ b/jstests/change_streams/only_wake_getmore_for_relevant_changes.js
@@ -112,8 +112,8 @@ eventFn();`,
const wholeCollectionStreamComment = "change stream on entire collection";
let res = assert.commandWorked(db.runCommand({
aggregate: changesCollection.getName(),
- // Project out the timestamp, since that's subject to change unpredictably.
- pipeline: [{$changeStream: {}}, {$project: {"_id.clusterTime": 0}}],
+ // Project out the resume token, since that's subject to change unpredictably.
+ pipeline: [{$changeStream: {}}, {$project: {"_id": 0}}],
cursor: {},
comment: wholeCollectionStreamComment
}));
@@ -132,7 +132,6 @@ eventFn();`,
assert.eq(getMoreResponse.cursor.nextBatch.length, 1);
const changesCollectionUuid = getUUIDFromListCollections(db, changesCollection.getName());
assert.docEq(getMoreResponse.cursor.nextBatch[0], {
- _id: {documentKey: {_id: "wake up"}, uuid: changesCollectionUuid},
documentKey: {_id: "wake up"},
fullDocument: {_id: "wake up"},
ns: {db: db.getName(), coll: changesCollection.getName()},
diff --git a/jstests/libs/change_stream_util.js b/jstests/libs/change_stream_util.js
index 61b7a3cc13e..3e806579ec6 100644
--- a/jstests/libs/change_stream_util.js
+++ b/jstests/libs/change_stream_util.js
@@ -12,19 +12,19 @@ function ChangeStreamTest(_db, name = "ChangeStreamTest") {
// Prevent accidental usages of the default db.
const db = null;
- self.oplogProjection = {$project: {"_id.clusterTime": 0}};
+ self.oplogProjection = {$project: {"_id": 0}};
/**
* Starts a change stream cursor with the given pipeline on the given collection. It uses
- * the 'aggregateOptions' if provided and elides the clusterTime if 'includeTs' is not set.
+ * the 'aggregateOptions' if provided and elides the resume token if 'includeToken' is not set.
* This saves the cursor so that it can be cleaned up later.
*
* Returns the cursor returned by the 'aggregate' command.
*/
- self.startWatchingChanges = function({pipeline, collection, includeTs, aggregateOptions}) {
+ self.startWatchingChanges = function({pipeline, collection, includeToken, aggregateOptions}) {
aggregateOptions = aggregateOptions || {cursor: {batchSize: 1}};
- if (!includeTs) {
+ if (!includeToken) {
// Strip the oplog fields we aren't testing.
pipeline.push(self.oplogProjection);
}