File tree 4 files changed +25
-16
lines changed
4 files changed +25
-16
lines changed Original file line number Diff line number Diff line change @@ -616,8 +616,8 @@ function handleMongoWriteConcernError(
616
616
callback (
617
617
new MongoBulkWriteError (
618
618
{
619
- message : err . result ? .writeConcernError . errmsg ,
620
- code : err . result ? .writeConcernError . result
619
+ message : err . result . writeConcernError . errmsg ,
620
+ code : err . result . writeConcernError . code
621
621
} ,
622
622
new BulkWriteResult ( bulkResult , isOrdered )
623
623
)
Original file line number Diff line number Diff line change @@ -1158,6 +1158,23 @@ export class MongoServerSelectionError extends MongoSystemError {
1158
1158
}
1159
1159
}
1160
1160
1161
+ /**
1162
+ * The type of the result property of MongoWriteConcernError
1163
+ * @public
1164
+ */
1165
+ export interface WriteConcernErrorResult {
1166
+ writeConcernError : {
1167
+ code : number ;
1168
+ errmsg : string ;
1169
+ codeName ?: string ;
1170
+ errInfo ?: Document ;
1171
+ } ;
1172
+ ok : number ;
1173
+ code ?: number ;
1174
+ errorLabels ?: string [ ] ;
1175
+ [ x : string | number ] : unknown ;
1176
+ }
1177
+
1161
1178
/**
1162
1179
* An error thrown when the server reports a writeConcernError
1163
1180
* @public
@@ -1178,16 +1195,7 @@ export class MongoWriteConcernError extends MongoServerError {
1178
1195
*
1179
1196
* @public
1180
1197
**/
1181
- constructor ( result : {
1182
- writeConcernError : {
1183
- code : number ;
1184
- errmsg : string ;
1185
- codeName ?: string ;
1186
- errInfo ?: Document ;
1187
- } ;
1188
- errorLabels ?: string [ ] ;
1189
- code ?: number ;
1190
- } ) {
1198
+ constructor ( result : WriteConcernErrorResult ) {
1191
1199
super ( { ...result , ...result . writeConcernError } ) ;
1192
1200
this . errInfo = result . writeConcernError . errInfo ;
1193
1201
this . result = result ;
Original file line number Diff line number Diff line change @@ -73,7 +73,8 @@ export {
73
73
MongoTopologyClosedError ,
74
74
MongoTransactionError ,
75
75
MongoUnexpectedServerResponseError ,
76
- MongoWriteConcernError
76
+ MongoWriteConcernError ,
77
+ WriteConcernErrorResult
77
78
} from './error' ;
78
79
export {
79
80
AbstractCursor ,
Original file line number Diff line number Diff line change @@ -742,16 +742,16 @@ describe('MongoErrors', () => {
742
742
} ) ;
743
743
744
744
describe ( 'MongoWriteConcernError constructor' , function ( ) {
745
- context ( 'when no top-level code is provided and writeConcernError.code exists ' , function ( ) {
746
- it ( 'error.code remains undefined ' , function ( ) {
745
+ context ( 'when no top-level code is provided' , function ( ) {
746
+ it ( 'error.code is set to writeConcernError.code ' , function ( ) {
747
747
const res = {
748
748
writeConcernError : {
749
749
code : 81 , // nested code
750
750
errmsg : 'fake msg'
751
751
} ,
752
752
ok : 1
753
753
} ;
754
- expect ( new MongoWriteConcernError ( res ) . code ) . to . equal ( undefined ) ;
754
+ expect ( new MongoWriteConcernError ( res ) . code ) . to . equal ( 81 ) ;
755
755
} ) ;
756
756
} ) ;
757
757
context ( 'when top-level code is provided and writeConcernError.code exists' , function ( ) {
You can’t perform that action at this time.
0 commit comments