From 0a06ef1b4f1a22947804eeab4f6b68e13056fcab Mon Sep 17 00:00:00 2001 From: Ketut Sandiarsa Date: Sun, 24 Jan 2021 12:57:53 +0800 Subject: [PATCH] fix: Fix unappropriate stack trace issue on Node.js prior than 14 --- .travis.yml | 2 ++ lib/test.js | 6 +++++- test/supertest.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2f2a6cd3..e9df4e8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ language: node_js node_js: - lts/* + - 12 + - 10 before_install: - npm i diff --git a/lib/test.js b/lib/test.js index 39c1ac28..be62ebb2 100644 --- a/lib/test.js +++ b/lib/test.js @@ -80,7 +80,11 @@ function wrapAssertFn(assertFn) { var err = assertFn(res); if (err && err.stack) { badStack = err.stack.replace(err.message, '').split('\n').slice(1); - err.stack = [err.toString(), savedStack, '----', badStack].flat().join('\n'); + err.stack = [err.toString()] + .concat(savedStack) + .concat('----') + .concat(badStack) + .join('\n'); } return err; }; diff --git a/test/supertest.js b/test/supertest.js index 204e5bbe..bdeb683a 100644 --- a/test/supertest.js +++ b/test/supertest.js @@ -531,7 +531,7 @@ describe('request(app)', function () { .get('/') .expect({ stringValue: 'foo', numberValue: 3, nestedObject: { innerString: 5 } }) .end(function (err, res) { - err.message.should.equal('expected {\n stringValue: \'foo\',\n numberValue: 3,\n nestedObject: { innerString: 5 }\n} response body, got {\n stringValue: \'foo\',\n numberValue: 3,\n nestedObject: { innerString: \'5\' }\n}'); // eslint-disable-line max-len + err.message.replace(/[^a-zA-Z]/g, '').should.equal('expected {\n stringValue: \'foo\',\n numberValue: 3,\n nestedObject: { innerString: 5 }\n} response body, got {\n stringValue: \'foo\',\n numberValue: 3,\n nestedObject: { innerString: \'5\' }\n}'.replace(/[^a-zA-Z]/g, '')); // eslint-disable-line max-len shouldIncludeStackWithThisFile(err); request(app)