From 4a0874432801d205b9d5a2a367c5eba3208ed72b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Concei=C3=A7=C3=A3o?= Date: Wed, 5 Feb 2020 10:47:57 +0000 Subject: [PATCH] Add AssertionFailedError --- README.md | 21 +++++++++++---------- src/errors/assertion-failed-error.js | 21 +++++++++++++++++++++ src/index.js | 1 + test/errors/assertion-failed-error_test.js | 20 ++++++++++++++++++++ types/errors/assertion-failed-error.d.ts | 6 ++++++ types/index.d.ts | 1 + 6 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 src/errors/assertion-failed-error.js create mode 100644 test/errors/assertion-failed-error_test.js create mode 100644 types/errors/assertion-failed-error.d.ts diff --git a/README.md b/README.md index 79867ac..3fa7ebd 100644 --- a/README.md +++ b/README.md @@ -33,16 +33,17 @@ try { Below is the list of all available errors: -| Name | Code | Default message | -|:------------------------|:-----|:--------------------| -| BadRequestError | 400 | Bad Request | -| ConflictError | 409 | Conflict | -| ForbiddenError | 403 | Forbidden | -| GoneError | 410 | Gone | -| NotFoundError | 404 | Not Found | -| ServiceUnavailableError | 503 | Service Unavailable | -| UnauthorizedError | 401 | Unauthorized | -| ValidationFailedError | 400 | Validation Failed | +| Name | Code | Default message | +|:------------------------|:-----|:----------------------| +| AssertionFailedError | 500 | Internal Server Error | +| BadRequestError | 400 | Bad Request | +| ConflictError | 409 | Conflict | +| ForbiddenError | 403 | Forbidden | +| GoneError | 410 | Gone | +| NotFoundError | 404 | Not Found | +| ServiceUnavailableError | 503 | Service Unavailable | +| UnauthorizedError | 401 | Unauthorized | +| ValidationFailedError | 400 | Validation Failed | ## Usage diff --git a/src/errors/assertion-failed-error.js b/src/errors/assertion-failed-error.js new file mode 100644 index 0000000..5f6eab3 --- /dev/null +++ b/src/errors/assertion-failed-error.js @@ -0,0 +1,21 @@ +'use strict'; + +/** + * Module dependencies. + */ + +const HttpError = require('./http-error'); + +/** + * Export `AssertionFailedError`. + */ + +module.exports = class AssertionFailedError extends HttpError { + /** + * Constructor. + */ + + constructor(errors) { + super(500, 'Assertion Failed', { errors }); + } +}; diff --git a/src/index.js b/src/index.js index e08c479..76a504b 100644 --- a/src/index.js +++ b/src/index.js @@ -5,6 +5,7 @@ */ module.exports = { + AssertionFailedError: require('./errors/assertion-failed-error'), BadRequestError: require('./errors/bad-request-error'), ConflictError: require('./errors/conflict-error'), ForbiddenError: require('./errors/forbidden-error'), diff --git a/test/errors/assertion-failed-error_test.js b/test/errors/assertion-failed-error_test.js new file mode 100644 index 0000000..89305f0 --- /dev/null +++ b/test/errors/assertion-failed-error_test.js @@ -0,0 +1,20 @@ +'use strict'; + +/** + * Module dependencies. + */ + +const { AssertionFailedError } = require('../../src'); +const test = require('../utils/test-http-error'); + +/** + * Test "Assertion Failed" error. + */ + +describe('AssertionFailedError', () => { + test(AssertionFailedError, 500, 'Assertion Failed', false); + + it('should set given `errors`', () => { + expect(new AssertionFailedError('foo').errors).toBe('foo'); + }); +}); diff --git a/types/errors/assertion-failed-error.d.ts b/types/errors/assertion-failed-error.d.ts new file mode 100644 index 0000000..b4b7f00 --- /dev/null +++ b/types/errors/assertion-failed-error.d.ts @@ -0,0 +1,6 @@ +import { HttpError } from './http-error'; +export declare class AssertionFailedError extends HttpError { + errors?: object; + + constructor(errors?: object); +} diff --git a/types/index.d.ts b/types/index.d.ts index 88c2016..46c1cf6 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,3 +1,4 @@ +export * from './errors/assertion-failed-error'; export * from './errors/bad-request-error'; export * from './errors/conflict-error'; export * from './errors/forbidden-error';