Skip to content

Commit 96d4362

Browse files
tests passing
1 parent 92cf6ab commit 96d4362

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

Diff for: src/bulk/common.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,8 @@ function handleMongoWriteConcernError(
616616
callback(
617617
new MongoBulkWriteError(
618618
{
619-
message: err.result?.writeConcernError.errmsg,
620-
code: err.result?.writeConcernError.result
619+
message: err.result.writeConcernError.errmsg,
620+
code: err.result.writeConcernError.code
621621
},
622622
new BulkWriteResult(bulkResult, isOrdered)
623623
)

Diff for: src/error.ts

+18-10
Original file line numberDiff line numberDiff line change
@@ -1158,6 +1158,23 @@ export class MongoServerSelectionError extends MongoSystemError {
11581158
}
11591159
}
11601160

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+
11611178
/**
11621179
* An error thrown when the server reports a writeConcernError
11631180
* @public
@@ -1178,16 +1195,7 @@ export class MongoWriteConcernError extends MongoServerError {
11781195
*
11791196
* @public
11801197
**/
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) {
11911199
super({ ...result, ...result.writeConcernError });
11921200
this.errInfo = result.writeConcernError.errInfo;
11931201
this.result = result;

Diff for: src/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ export {
7373
MongoTopologyClosedError,
7474
MongoTransactionError,
7575
MongoUnexpectedServerResponseError,
76-
MongoWriteConcernError
76+
MongoWriteConcernError,
77+
WriteConcernErrorResult
7778
} from './error';
7879
export {
7980
AbstractCursor,

Diff for: test/unit/error.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -742,16 +742,16 @@ describe('MongoErrors', () => {
742742
});
743743

744744
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 () {
747747
const res = {
748748
writeConcernError: {
749749
code: 81, // nested code
750750
errmsg: 'fake msg'
751751
},
752752
ok: 1
753753
};
754-
expect(new MongoWriteConcernError(res).code).to.equal(undefined);
754+
expect(new MongoWriteConcernError(res).code).to.equal(81);
755755
});
756756
});
757757
context('when top-level code is provided and writeConcernError.code exists', function () {

0 commit comments

Comments
 (0)