Skip to content

Commit 6ba40a6

Browse files
committed
fix: type tests
1 parent ceb4f60 commit 6ba40a6

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ export type {
208208
ChangeStreamDocumentCommon,
209209
ChangeStreamDocumentKey,
210210
ChangeStreamDocumentOperationDescription,
211+
ChangeStreamDocumentWallTime,
211212
ChangeStreamDropDatabaseDocument,
212213
ChangeStreamDropDocument,
213214
ChangeStreamDropIndexDocument,

test/types/change_stream.test-d.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ expectType<ResumeToken>(change._id);
6363
expectType<Timestamp | undefined>(change.clusterTime);
6464
expectType<number | undefined>(change.txnNumber); // Could be a Long if promoteLongs is off
6565
expectType<ServerSessionId | undefined>(change.lsid);
66-
expectType<Date | undefined>(change.wallTime);
6766

6867
type CrudChangeDoc =
6968
| ChangeStreamInsertDocument<Schema> // C
@@ -76,6 +75,7 @@ declare const crudChange: CrudChangeDoc;
7675
expectType<CrudChangeDoc extends ChangeStreamDocumentKey<Schema> ? true : false>(true);
7776
expectType<number>(crudChange.documentKey._id); // _id will get typed
7877
expectType<any>(crudChange.documentKey.blah); // shard keys could be anything
78+
expectType<Date | undefined>(crudChange.wallTime);
7979

8080
// ChangeStreamFullNameSpace
8181
expectType<ChangeStreamNameSpace>(crudChange.ns);
@@ -88,12 +88,14 @@ switch (change.operationType) {
8888
expectType<number>(change.documentKey._id);
8989
expectType<any>(change.documentKey.blah);
9090
expectType<Schema>(change.fullDocument);
91+
expectType<Date | undefined>(change.wallTime);
9192
break;
9293
}
9394
case 'update': {
9495
expectType<ChangeStreamUpdateDocument<Schema>>(change);
9596
expectType<'update'>(change.operationType);
9697
expectType<Schema | undefined>(change.fullDocument); // Update only attaches fullDocument if configured
98+
expectType<Date | undefined>(change.wallTime);
9799
expectType<UpdateDescription<Schema>>(change.updateDescription);
98100
expectType<Partial<Schema> | undefined>(change.updateDescription.updatedFields);
99101
expectType<string[] | undefined>(change.updateDescription.removedFields);
@@ -105,61 +107,72 @@ switch (change.operationType) {
105107
case 'replace': {
106108
expectType<ChangeStreamReplaceDocument<Schema>>(change);
107109
expectType<'replace'>(change.operationType);
110+
expectType<Date | undefined>(change.wallTime);
108111
expectType<Schema>(change.fullDocument);
109112
break;
110113
}
111114
case 'delete': {
112115
expectType<ChangeStreamDeleteDocument<Schema>>(change);
116+
expectType<Date | undefined>(change.wallTime);
113117
expectType<'delete'>(change.operationType);
114118
break;
115119
}
116120
case 'drop': {
117121
expectType<ChangeStreamDropDocument>(change);
118122
expectType<'drop'>(change.operationType);
123+
expectType<Date | undefined>(change.wallTime);
119124
expectType<{ db: string; coll: string }>(change.ns);
120125
break;
121126
}
122127
case 'rename': {
123128
expectType<ChangeStreamRenameDocument>(change);
124129
expectType<'rename'>(change.operationType);
130+
expectType<Date | undefined>(change.wallTime);
125131
expectType<{ db: string; coll: string }>(change.ns);
126132
expectType<{ db: string; coll: string }>(change.to);
127133
break;
128134
}
129135
case 'dropDatabase': {
130136
expectType<ChangeStreamDropDatabaseDocument>(change);
131137
expectType<'dropDatabase'>(change.operationType);
138+
expectType<Date | undefined>(change.wallTime);
132139
expectError(change.ns.coll);
133140
break;
134141
}
135142
case 'invalidate': {
136143
expectType<ChangeStreamInvalidateDocument>(change);
137144
expectType<'invalidate'>(change.operationType);
145+
expectType<Date | undefined>(change.wallTime);
138146
break;
139147
}
140148
case 'create': {
141149
expectType<ChangeStreamCreateDocument>(change);
142150
expectType<'create'>(change.operationType);
151+
expectType<Date | undefined>(change.wallTime);
143152
break;
144153
}
145154
case 'modify': {
146155
expectType<ChangeStreamCollModDocument>(change);
147156
expectType<'modify'>(change.operationType);
157+
expectType<Date | undefined>(change.wallTime);
148158
break;
149159
}
150160
case 'createIndexes': {
151161
expectType<ChangeStreamCreateIndexDocument>(change);
152162
expectType<'createIndexes'>(change.operationType);
163+
expectType<Date | undefined>(change.wallTime);
153164
break;
154165
}
155166
case 'dropIndexes': {
156167
expectType<ChangeStreamDropIndexDocument>(change);
157168
expectType<'dropIndexes'>(change.operationType);
169+
expectType<Date | undefined>(change.wallTime);
158170
break;
159171
}
160172
case 'shardCollection': {
161173
expectType<ChangeStreamShardCollectionDocument>(change);
162174
expectType<'shardCollection'>(change.operationType);
175+
expectType<Date | undefined>(change.wallTime);
163176
break;
164177
}
165178
case 'reshardCollection': {

0 commit comments

Comments
 (0)