diff --git a/README.md b/README.md index 90927d0..d08b0b3 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ serializer.serialize([parsedError]); ### parseJsonErrors(object) -Parse json object containing errors into javascript `ApiError` instances. Will return an array with all non-errors filtered out or empty array if no errors were found. +Parse json object containing errors into javascript `ApiError` instances. Will return an array with all non-errors filtered out or default InternalServerError if no errors were found. ```javascript try { diff --git a/src/lib/parser.ts b/src/lib/parser.ts index a558ad0..7d4e6ae 100644 --- a/src/lib/parser.ts +++ b/src/lib/parser.ts @@ -1,7 +1,7 @@ import * as ev from 'express-validation'; import * as _ from 'lodash'; -import { ApiError, ValidationError } from './errors'; +import { ApiError, ValidationError, InternalServerError } from './errors'; import { errors } from '../config/errors.config'; import { errorDefaults } from '../config/defaults.config'; import { getTranslator } from './translator'; @@ -102,7 +102,8 @@ export function parseJsonErrors(response: any): ApiError[] { }, []); } - return []; + // Make sure to always return ApiError + return [new InternalServerError(errors.INTERNAL_ERROR, { detail: response })]; } // Interfaces diff --git a/tests/parser.test.ts b/tests/parser.test.ts index 73d4de0..8f58df9 100644 --- a/tests/parser.test.ts +++ b/tests/parser.test.ts @@ -2,7 +2,7 @@ import * as httpStatus from 'http-status'; import { ValidationError } from 'express-validation'; import * as translator from '../src/lib/translator'; -import { ApiError, errors, parseErrors, parseJsonErrors, isApiError } from '../src'; +import { ApiError, errors, parseErrors, parseJsonErrors, isApiError, InternalServerError } from '../src'; import { errorDefaults } from '../src/config/defaults.config'; describe('errorParser', () => { @@ -298,13 +298,13 @@ describe('errorParser', () => { }); }); - it('Should return empty array when contains no errors', () => { - expect(parseJsonErrors(null)).toEqual([]); - expect(parseJsonErrors([])).toEqual([]); + it('Should return internalServerError response when contains no errors', () => { + expect(parseJsonErrors(null)[0]).toBeInstanceOf(InternalServerError); + expect(parseJsonErrors([])[0]).toBeInstanceOf(InternalServerError); expect(parseJsonErrors({ errors: [] })).toEqual([]); }); - it('Should return empty array when not all properties were found', () => { + it('Should return empty error when not all properties were found', () => { const result = parseJsonErrors({ errors: [{ status: httpStatus.BAD_REQUEST,