From 998e8e5761be12c95e9a2093d063be6affe7380a Mon Sep 17 00:00:00 2001 From: Tan Zhen Yong Date: Thu, 14 Feb 2019 20:31:14 +0800 Subject: [PATCH 1/2] Add stack trace to error from AWS invokeLocal --- lib/plugins/aws/invokeLocal/index.js | 1 + lib/plugins/aws/invokeLocal/index.test.js | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/plugins/aws/invokeLocal/index.js b/lib/plugins/aws/invokeLocal/index.js index 91332030d..bf32955ca 100644 --- a/lib/plugins/aws/invokeLocal/index.js +++ b/lib/plugins/aws/invokeLocal/index.js @@ -329,6 +329,7 @@ class AwsInvokeLocal { errorResult = { errorMessage: err.message, errorType: err.constructor.name, + stackTrace: err.stack.split('\n'), }; } else { errorResult = { diff --git a/lib/plugins/aws/invokeLocal/index.test.js b/lib/plugins/aws/invokeLocal/index.test.js index 4bd83d751..512bd1248 100644 --- a/lib/plugins/aws/invokeLocal/index.test.js +++ b/lib/plugins/aws/invokeLocal/index.test.js @@ -584,6 +584,7 @@ describe('AwsInvokeLocal', () => { expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"errorMessage": "failed"'); expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"errorType": "Error"'); + expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"stackTrace": ['); }); it('should log Error object if handler crashes at initialization', () => { From 0fd67336f73db1510ca2aac9d00f9083180a47b4 Mon Sep 17 00:00:00 2001 From: Philipp Muens Date: Thu, 14 Feb 2019 16:06:18 +0100 Subject: [PATCH 2/2] Rework error tests --- lib/plugins/aws/invokeLocal/index.test.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/plugins/aws/invokeLocal/index.test.js b/lib/plugins/aws/invokeLocal/index.test.js index 512bd1248..c8bba83f4 100644 --- a/lib/plugins/aws/invokeLocal/index.test.js +++ b/lib/plugins/aws/invokeLocal/index.test.js @@ -582,9 +582,11 @@ describe('AwsInvokeLocal', () => { awsInvokeLocal.invokeLocalNodeJs('fixture/handlerWithError', 'withError'); - expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"errorMessage": "failed"'); - expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"errorType": "Error"'); - expect(serverless.cli.consoleLog.lastCall.args[0]).to.contain('"stackTrace": ['); + const logMessageContent = JSON.parse(serverless.cli.consoleLog.lastCall.args[0]); + + expect(logMessageContent.errorMessage).to.equal('failed'); + expect(logMessageContent.errorType).to.equal('Error'); + expect(logMessageContent.stackTrace[0]).to.equal('Error: failed'); }); it('should log Error object if handler crashes at initialization', () => {