diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a5c9953..62bbe2eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -## 2.0.16/17 +## 2.0.16/17/18 - #2400 Create log/pid default folder even if the root folder is already created - #2395 CRON feature now call PM2 for app to be killed (allow to use SIGINT) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 75c25bc5..2c1894d9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2,11 +2,6 @@ "name": "pm2", "version": "2.0.17", "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - }, "amp": { "version": "0.3.1", "from": "amp@>=0.3.1 <0.4.0", @@ -452,9 +447,9 @@ "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz" }, "pmx": { - "version": "0.6.7", - "from": "pmx@>=0.6.7 <0.7.0", - "resolved": "https://registry.npmjs.org/pmx/-/pmx-0.6.7.tgz" + "version": "0.6.8", + "from": "pmx@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/pmx/-/pmx-0.6.8.tgz" }, "preserve": { "version": "0.2.0", @@ -522,14 +517,14 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.3.tgz" }, "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" + "version": "0.5.6", + "from": "source-map@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" }, "source-map-support": { - "version": "0.4.2", + "version": "0.4.3", "from": "source-map-support@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.2.tgz" + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.3.tgz" }, "sprintf-js": { "version": "1.0.3", diff --git a/package.json b/package.json index b0a8fc01..beb37e03 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "pm2-axon-rpc": "0.4.5", "pm2-deploy": "^0.3", "pm2-multimeter": "0.1.2", - "pmx": "^0.6.7", + "pmx": "^0.6", "semver": "^5.2", "shelljs": "0.7.3", "source-map-support": "^0.4", diff --git a/test/bash/promise.sh b/test/bash/promise.sh new file mode 100644 index 00000000..e561ed14 --- /dev/null +++ b/test/bash/promise.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +SRC=$(cd $(dirname "$0"); pwd) +source "${SRC}/include.sh" + +cd $file_path/promise/ + +# Check for 0.10 & 0.12 support +node -e "Promise.resolve()" +RET=$? +[ $RET -eq 0 ] || exit 0 + +echo "###### Cluster mode" +> rejection.log +$pm2 start rejection.js -i 1 -l rejection.log --merge-logs +sleep 1 +should 'should has not restarted process' 'restart_time: 0' 1 +cat rejection.log | grep "You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection" +spec "should have logged promise error" + +$pm2 delete all + +> empty-rejection.log +$pm2 start empty-rejection.js -i 1 -l empty-rejection.log --merge-logs +sleep 1 +should 'should has not restarted process' 'restart_time: 0' 1 + +cat empty-rejection.log | grep "You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection" +spec "should have logged promise error" + +$pm2 delete all + +echo "###### Fork mode" + +> rejection.log +$pm2 start rejection.js -l rejection.log --merge-logs +sleep 1 +should 'should has not restarted process' 'restart_time: 0' 1 + +cat rejection.log | grep "You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection" +spec "should have logged promise error" + +$pm2 delete all + +> empty-rejection.log +$pm2 start empty-rejection.js -l empty-rejection.log --merge-logs +sleep 1 +should 'should has not restarted process' 'restart_time: 0' 1 + +cat empty-rejection.log | grep "You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection" +spec "should have logged promise error" diff --git a/test/fixtures/promise/empty-rejection.js b/test/fixtures/promise/empty-rejection.js new file mode 100644 index 00000000..417f814d --- /dev/null +++ b/test/fixtures/promise/empty-rejection.js @@ -0,0 +1,7 @@ + +setTimeout(function() { + Promise.reject(); +}, 1000); + +setInterval(function() { +}, 1000); diff --git a/test/fixtures/promise/rejection.js b/test/fixtures/promise/rejection.js new file mode 100644 index 00000000..ea0e49ee --- /dev/null +++ b/test/fixtures/promise/rejection.js @@ -0,0 +1,7 @@ + +setTimeout(function() { + Promise.reject(new Error('Errorla')); +}, 1000); + +setInterval(function() { +}, 1000); diff --git a/test/pm2_behavior_tests.sh b/test/pm2_behavior_tests.sh index cce383a8..ca94d5eb 100644 --- a/test/pm2_behavior_tests.sh +++ b/test/pm2_behavior_tests.sh @@ -25,6 +25,8 @@ spec "Docker tests" bash ./test/bash/cron-system.sh spec "Cron system tests" +bash ./test/bash/promise.sh +spec "Promise warning message tests" # bash ./test/bash/log-timestamp.sh # spec "timestamp prefix of pm2.log"