MCPcopy
hub / github.com/mongodb/node-mongodb-native / expectErrorCheck

Function expectErrorCheck

test/tools/unified-spec-runner/match.ts:777–865  ·  view source on GitHub ↗
(
  error: Error | MongoError,
  expected: ExpectedError,
  entities: EntitiesMap
)

Source from the content-addressed store, hash-verified

775}
776
777export function expectErrorCheck(
778 error: Error | MongoError,
779 expected: ExpectedError,
780 entities: EntitiesMap
781): void {
782 const expectMessage = `\n\nOriginal Error Stack:\n${error.stack}\n\n`;
783
784 if (!isMongoCryptError(error)) {
785 expect(error, expectMessage).to.be.instanceOf(MongoError);
786 }
787
788 if (expected.isClientError === false) {
789 expect(error).to.be.instanceOf(MongoServerError);
790 } else if (expected.isClientError === true) {
791 if (error instanceof MongoBulkWriteError) {
792 // TODO(NODE-6281): do not throw MongoServerErrors from bulk write if the error is a client-side error
793 expect(error.errorResponse).not.to.be.instanceOf(MongoServerError);
794 } else {
795 expect(error).not.to.be.instanceOf(MongoServerError);
796 }
797 }
798
799 if (expected.isTimeoutError === false) {
800 expect(error).to.not.be.instanceof(MongoOperationTimeoutError);
801 } else if (expected.isTimeoutError === true) {
802 if ('errorResponse' in error) {
803 expect(error.errorResponse).to.be.instanceof(MongoOperationTimeoutError);
804 } else {
805 expect(error).to.be.instanceof(MongoOperationTimeoutError);
806 }
807 }
808
809 if (expected.errorContains != null) {
810 expect(error.message.toLowerCase(), expectMessage.toLowerCase()).to.include(
811 expected.errorContains.toLowerCase()
812 );
813 }
814
815 if (expected.errorCode != null) {
816 if (error instanceof MongoClientBulkWriteError) {
817 expect(error.cause).to.have.property('code', expected.errorCode);
818 } else {
819 expect(error, expectMessage).to.have.property('code', expected.errorCode);
820 }
821 }
822
823 if (expected.errorCodeName != null) {
824 expect(error, expectMessage).to.have.property('codeName', expected.errorCodeName);
825 }
826
827 if (expected.errorLabelsContain != null) {
828 let mongoError = error as MongoError;
829 if (error instanceof MongoClientBulkWriteError) {
830 mongoError = error.cause as MongoError;
831 }
832 for (const errorLabel of expected.errorLabelsContain) {
833 expect(
834 mongoError.hasErrorLabel(errorLabel),

Callers 1

executeOperationAndCheckFunction · 0.90

Calls 3

isMongoCryptErrorFunction · 0.85
resultCheckFunction · 0.85
hasErrorLabelMethod · 0.45

Tested by

no test coverage detected