From 9ae179034c7c8bdc1c62f03eb819d58de7735f3d Mon Sep 17 00:00:00 2001 From: JP Erasmus Date: Mon, 21 May 2018 22:04:37 +0200 Subject: [PATCH] fix: Handle misformed error response (without `stack`) (#8) * fix: Handle misformed error response (without `stack`) * test: Add test for POJO input * test: Remove unused variable * lint: Style fix --- src/handle.ts | 2 +- test/handle.test.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/handle.ts b/src/handle.ts index bd90fea..e336018 100644 --- a/src/handle.ts +++ b/src/handle.ts @@ -8,7 +8,7 @@ export const handle = (err: any) => { try { if (!err) err = new Error('no error?') if (err.message === 'SIGINT') process.exit(1) - let stack = clean(err.stack, {pretty: true}) + let stack = clean(err.stack || '', {pretty: true}) let message = stack if (err.oclif && typeof err.render === 'function') message = err.render() if (message) console.error(message) diff --git a/test/handle.test.ts b/test/handle.test.ts index b611242..17ff317 100644 --- a/test/handle.test.ts +++ b/test/handle.test.ts @@ -36,6 +36,14 @@ describe('handle', () => { expect(process.exitCode).to.equal(1) }) + fancy + .stderr() + .finally(() => delete process.exitCode) + .it('handles a badly formed error object', () => { + handle({status: 400}) + expect(process.exitCode).to.equal(1) + }) + fancy .stderr() .finally(() => delete process.exitCode)