From 81a2f240e354dd2417ccd863dfa4c892f8360cda Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 8 Apr 2019 13:05:25 -0700 Subject: [PATCH 1/4] Fix missing event dispatcher in decision listener test. Add hook to fail tests on unhandled promise rejections. --- packages/optimizely-sdk/exit_on_unhandled_rejection.js | 7 +++++++ packages/optimizely-sdk/lib/optimizely/index.tests.js | 1 + packages/optimizely-sdk/package.json | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/optimizely-sdk/exit_on_unhandled_rejection.js diff --git a/packages/optimizely-sdk/exit_on_unhandled_rejection.js b/packages/optimizely-sdk/exit_on_unhandled_rejection.js new file mode 100644 index 000000000..a5c673bcb --- /dev/null +++ b/packages/optimizely-sdk/exit_on_unhandled_rejection.js @@ -0,0 +1,7 @@ +process.on("unhandledRejection", function(err) { + console.error('Unhandled promise rejection'); + if (err) { + console.error(err); + } + process.exit(1); +}); diff --git a/packages/optimizely-sdk/lib/optimizely/index.tests.js b/packages/optimizely-sdk/lib/optimizely/index.tests.js index 3b56e96d7..07950b11f 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.tests.js +++ b/packages/optimizely-sdk/lib/optimizely/index.tests.js @@ -2451,6 +2451,7 @@ describe('lib/optimizely', function() { jsonSchemaValidator: jsonSchemaValidator, logger: createdLogger, isValidInstance: true, + eventDispatcher: eventDispatcher, }); optlyInstance.notificationCenter.addNotificationListener( diff --git a/packages/optimizely-sdk/package.json b/packages/optimizely-sdk/package.json index 845aaae9f..f1aaf7960 100644 --- a/packages/optimizely-sdk/package.json +++ b/packages/optimizely-sdk/package.json @@ -6,7 +6,7 @@ "browser": "lib/index.browser.js", "typings": "lib/index.d.ts", "scripts": { - "test": "mocha ./lib/*.tests.js ./lib/**/*.tests.js ./lib/**/**/*tests.js --recursive --exit", + "test": "mocha ./lib/*.tests.js ./lib/**/*.tests.js ./lib/**/**/*tests.js --recursive --exit --require exit_on_unhandled_rejection.js", "test-xbrowser": "karma start karma.bs.conf.js --single-run", "test-umdbrowser": "npm run build-browser-umd && karma start karma.umd.conf.js --single-run", "build-browser-umd": "rm -rf dist && webpack", From f94ec1e5d93a06ad8f5b5f2317c91428d19f1008 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 8 Apr 2019 13:07:06 -0700 Subject: [PATCH 2/4] Single quote --- packages/optimizely-sdk/exit_on_unhandled_rejection.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/optimizely-sdk/exit_on_unhandled_rejection.js b/packages/optimizely-sdk/exit_on_unhandled_rejection.js index a5c673bcb..d8264a03c 100644 --- a/packages/optimizely-sdk/exit_on_unhandled_rejection.js +++ b/packages/optimizely-sdk/exit_on_unhandled_rejection.js @@ -1,4 +1,4 @@ -process.on("unhandledRejection", function(err) { +process.on('unhandledRejection', function(err) { console.error('Unhandled promise rejection'); if (err) { console.error(err); From 90cdd8746fe7abab800b0ef439beb7ba45f4f986 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 8 Apr 2019 13:20:59 -0700 Subject: [PATCH 3/4] Add explanation comment --- packages/optimizely-sdk/exit_on_unhandled_rejection.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/optimizely-sdk/exit_on_unhandled_rejection.js b/packages/optimizely-sdk/exit_on_unhandled_rejection.js index d8264a03c..9dcc25e67 100644 --- a/packages/optimizely-sdk/exit_on_unhandled_rejection.js +++ b/packages/optimizely-sdk/exit_on_unhandled_rejection.js @@ -1,3 +1,7 @@ +/* + * This is to stop & fail tests when an unhandled promise rejection occurs. + * See: https://nodejs.org/api/process.html#process_event_unhandledrejection + */ process.on('unhandledRejection', function(err) { console.error('Unhandled promise rejection'); if (err) { From b12b958d4c59196e2e616bb080dacc2a4ec6daa1 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 8 Apr 2019 13:31:16 -0700 Subject: [PATCH 4/4] Move exit_on_unhandled_rejection.js, add license header --- .../exit_on_unhandled_rejection.js | 11 -------- .../lib/tests/exit_on_unhandled_rejection.js | 27 +++++++++++++++++++ packages/optimizely-sdk/package.json | 2 +- 3 files changed, 28 insertions(+), 12 deletions(-) delete mode 100644 packages/optimizely-sdk/exit_on_unhandled_rejection.js create mode 100644 packages/optimizely-sdk/lib/tests/exit_on_unhandled_rejection.js diff --git a/packages/optimizely-sdk/exit_on_unhandled_rejection.js b/packages/optimizely-sdk/exit_on_unhandled_rejection.js deleted file mode 100644 index 9dcc25e67..000000000 --- a/packages/optimizely-sdk/exit_on_unhandled_rejection.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * This is to stop & fail tests when an unhandled promise rejection occurs. - * See: https://nodejs.org/api/process.html#process_event_unhandledrejection - */ -process.on('unhandledRejection', function(err) { - console.error('Unhandled promise rejection'); - if (err) { - console.error(err); - } - process.exit(1); -}); diff --git a/packages/optimizely-sdk/lib/tests/exit_on_unhandled_rejection.js b/packages/optimizely-sdk/lib/tests/exit_on_unhandled_rejection.js new file mode 100644 index 000000000..4722776cc --- /dev/null +++ b/packages/optimizely-sdk/lib/tests/exit_on_unhandled_rejection.js @@ -0,0 +1,27 @@ +/** + * Copyright 2019, Optimizely + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This is to stop & fail tests when an unhandled promise rejection occurs. + * See: https://nodejs.org/api/process.html#process_event_unhandledrejection + */ +process.on('unhandledRejection', function(err) { + console.error('Unhandled promise rejection'); + if (err) { + console.error(err); + } + process.exit(1); +}); diff --git a/packages/optimizely-sdk/package.json b/packages/optimizely-sdk/package.json index f1aaf7960..58396d4c0 100644 --- a/packages/optimizely-sdk/package.json +++ b/packages/optimizely-sdk/package.json @@ -6,7 +6,7 @@ "browser": "lib/index.browser.js", "typings": "lib/index.d.ts", "scripts": { - "test": "mocha ./lib/*.tests.js ./lib/**/*.tests.js ./lib/**/**/*tests.js --recursive --exit --require exit_on_unhandled_rejection.js", + "test": "mocha ./lib/*.tests.js ./lib/**/*.tests.js ./lib/**/**/*tests.js --recursive --exit --require lib/tests/exit_on_unhandled_rejection.js", "test-xbrowser": "karma start karma.bs.conf.js --single-run", "test-umdbrowser": "npm run build-browser-umd && karma start karma.umd.conf.js --single-run", "build-browser-umd": "rm -rf dist && webpack",