diff --git a/src/models/__tests__/err-illegal-constructor.spec.ts b/src/models/__tests__/err-illegal-constructor.spec.ts new file mode 100644 index 00000000..559c429a --- /dev/null +++ b/src/models/__tests__/err-illegal-constructor.spec.ts @@ -0,0 +1,31 @@ +/** + * @file Unit Tests - ERR_ILLEGAL_CONSTRUCTOR + * @module errnode/models/tests/unit/ERR_ILLEGAL_CONSTRUCTOR + */ + +import { ErrorCode } from '#src/enums' +import type { NodeError } from '#src/types' +import TestSubject from '../err-illegal-constructor' + +describe('unit:models/ERR_ILLEGAL_CONSTRUCTOR', () => { + let result: NodeError + + beforeEach(() => { + result = new TestSubject() + }) + + it('should return TypeError instance', () => { + expect(result).to.have.property('name').equal('TypeError') + expect(result).to.be.instanceof(TypeError) + }) + + it('should set error code', () => { + expect(result) + .to.have.property('code') + .equal(ErrorCode.ERR_ILLEGAL_CONSTRUCTOR) + }) + + it('should set error message', () => { + expect(result).to.have.property('message').equal('Illegal constructor') + }) +}) diff --git a/src/models/err-illegal-constructor.ts b/src/models/err-illegal-constructor.ts new file mode 100644 index 00000000..fd6adb94 --- /dev/null +++ b/src/models/err-illegal-constructor.ts @@ -0,0 +1,30 @@ +/** + * @file Error Models - ERR_ILLEGAL_CONSTRUCTOR + * @module errnode/models/ERR_ILLEGAL_CONSTRUCTOR + * @see https://github.com/nodejs/node/blob/v19.3.0/lib/internal/errors.js#L1163 + */ + +import { ErrorCode } from '#src/enums' +import type { NodeError, NodeErrorConstructor } from '#src/types' +import { createNodeError } from '#src/utils' + +/** + * `ERR_ILLEGAL_CONSTRUCTOR` model. + * + * Thrown when an attempt is made to construct an object using a non-public + * constructor. + * + * @see https://nodejs.org/api/errors.html#err_illegal_constructor + * + * @class + * + * @return {NodeError} `TypeError` instance + */ +const ERR_ILLEGAL_CONSTRUCTOR: NodeErrorConstructor = + createNodeError( + ErrorCode.ERR_ILLEGAL_CONSTRUCTOR, + TypeError, + 'Illegal constructor' + ) + +export default ERR_ILLEGAL_CONSTRUCTOR diff --git a/src/models/index.ts b/src/models/index.ts index a4a90580..984bb6f8 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -7,3 +7,4 @@ export { default as ERR_AMBIGUOUS_ARGUMENT } from './err-ambiguous-argument' export { default as ERR_ARG_NOT_ITERABLE } from './err-arg-not-iterable' export { default as ERR_ASYNC_CALLBACK } from './err-async-callback' +export { default as ERR_ILLEGAL_CONSTRUCTOR } from './err-illegal-constructor'