diff --git a/src/errors.mjs b/src/errors.mjs index c997a9f..667800f 100644 --- a/src/errors.mjs +++ b/src/errors.mjs @@ -2,6 +2,7 @@ export class ExitError extends Error { constructor(code, message) { super(message); + this.name = 'ExitError'; this.code = code; } } diff --git a/test/errors.test.mjs b/test/errors.test.mjs new file mode 100644 index 0000000..66b439b --- /dev/null +++ b/test/errors.test.mjs @@ -0,0 +1,31 @@ +import { describe, it } from 'node:test'; +import assert from 'node:assert'; +import { ExitError } from '../src/errors.mjs'; + +describe('ExitError', () => { + it('should capture the code and message correctly', () => { + const code = 1; + const message = 'Test error message'; + const error = new ExitError(code, message); + + assert.strictEqual(error.code, code); + assert.strictEqual(error.message, message); + }); + + it('should be an instance of Error and ExitError', () => { + const error = new ExitError(1, 'message'); + + assert.ok(error instanceof Error); + assert.ok(error instanceof ExitError); + }); + + it('should have a stack trace', () => { + const error = new ExitError(1, 'message'); + assert.ok(error.stack); + }); + + it('should have the correct name', () => { + const error = new ExitError(1, 'message'); + assert.strictEqual(error.name, 'ExitError'); + }); +});