Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(jasmine): unhanded promise rejection causes tests suit to pass
Currently unhandled promise rejection caused tests suit to pass. Example: ``` yarn bazel test //packages/angular_devkit/core:core_test --test_summary=detailed --test_output=all INFO: Analyzed target //packages/angular_devkit/core:core_test (2 packages loaded, 148 targets configured). INFO: Found 1 test target... Target //packages/angular_devkit/core:core_test up-to-date: dist/bin/packages/angular_devkit/core/core_test.sh dist/bin/packages/angular_devkit/core/core_test_loader.js dist/bin/packages/angular_devkit/core/core_test_require_patch.js INFO: Elapsed time: 0.357s, Critical Path: 0.02s INFO: 1 process: 1 internal. INFO: Build completed successfully, 1 total action PASSED: //packages/angular_devkit/core:core_test (see /private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/bazel-out/darwin-fastbuild/testlogs/packages/angular_devkit/core/core_test/test.log) INFO: From Testing //packages/angular_devkit/core:core_test ==================== Test output for //packages/angular_devkit/core:core_test: (node:11987) UnhandledPromiseRejectionWarning: Error: Cannot find module '/private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/node_modules/@angular-devkit/core/src/index.js'. Please verify that the package.json has a valid "main" entry at tryPackage (internal/modules/cjs/loader.js:303:19) at Function.Module._findPath (internal/modules/cjs/loader.js:516:18) at Function.Module._resolveFilename (internal/modules/cjs/loader.js:867:27) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (packages/angular_devkit/core/src/virtual-fs/host/memory_spec.ts:10:1) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Loader.requireShim [as require_] (node_modules/jasmine/lib/loader.js:35:3) at node_modules/jasmine/lib/loader.js:28:12 at new Promise (<anonymous>) at Loader.load (node_modules/jasmine/lib/loader.js:27:12) at Jasmine.loadSpecs (node_modules/jasmine/lib/jasmine.js:91:23) at Jasmine.execute (node_modules/jasmine/lib/jasmine.js:267:3) (Use `node --trace-warnings ...` to show where the warning was created) (node:11987) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) (node:11987) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. ================================================================================ Test cases: finished with 1 passing and 0 failing out of 1 test cases Executed 0 out of 1 test: 1 test passes. ``` The reason for this is because Jasmine `execute` method returns a `Promise`, which was not handled properly. See: https://unpkg.com/browse/jasmine@3.7.0/lib/jasmine.js#L267 Without this fix ``` yarn bazel test //packages/angular_devkit/core:core_test yarn run v1.22.10 INFO: Build options --action_env and --enable_runfiles have changed, discarding analysis cache. INFO: Analyzed target //packages/angular_devkit/core:core_test (3 packages loaded, 6322 targets configured). INFO: Found 1 test target... Target //packages/angular_devkit/core:core_test up-to-date: dist/bin/packages/angular_devkit/core/core_test.sh dist/bin/packages/angular_devkit/core/core_test_loader.js dist/bin/packages/angular_devkit/core/core_test_require_patch.js INFO: Elapsed time: 7.172s, Critical Path: 6.58s INFO: 4 processes: 2 local, 2 worker. INFO: Build completed successfully, 4 total actions //packages/angular_devkit/core:core_test PASSED in 0.5s Executed 1 out of 1 test: 1 test passes. INFO: Build completed successfully, 4 total actions ``` With this fix: ``` yarn bazel test //packages/angular_devkit/core:core_test yarn run v1.22.10 $ /Users/alanagius/git/angular-cli/node_modules/.bin/bazel test //packages/angular_devkit/core:core_test INFO: Analyzed target //packages/angular_devkit/core:core_test (1 packages loaded, 10 targets configured). INFO: Found 1 test target... FAIL: //packages/angular_devkit/core:core_test (see /private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/bazel-out/darwin-fastbuild/testlogs/packages/angular_devkit/core/core_test/test.log) INFO: From Testing //packages/angular_devkit/core:core_test: ==================== Test output for //packages/angular_devkit/core:core_test: [jasmine_runner.js] An error has been reported: Error: Cannot find module '/private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/node_modules/@angular-devkit/core/src/index.js'. Please verify that the package.json has a valid "main" entry at tryPackage (internal/modules/cjs/loader.js:303:19) at Function.Module._findPath (internal/modules/cjs/loader.js:516:18) at Function.Module._resolveFilename (internal/modules/cjs/loader.js:867:27) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (packages/angular_devkit/core/src/virtual-fs/host/memory_spec.ts:10:1) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Loader.requireShim [as require_] (node_modules/jasmine/lib/loader.js:35:3) at node_modules/jasmine/lib/loader.js:28:12 at new Promise (<anonymous>) at Loader.load (node_modules/jasmine/lib/loader.js:27:12) at Jasmine.loadSpecs (node_modules/jasmine/lib/jasmine.js:91:23) at Jasmine.execute (node_modules/jasmine/lib/jasmine.js:267:3) at main (node_modules/@bazel/jasmine/jasmine_runner.js:157:3) at node_modules/@bazel/jasmine/jasmine_runner.js:182:26 { code: 'MODULE_NOT_FOUND', path: '/private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/node_modules/@angular-devkit/core/package.json', requestPath: '@angular-devkit/core' } ================================================================================ Target //packages/angular_devkit/core:core_test up-to-date: dist/bin/packages/angular_devkit/core/core_test.sh dist/bin/packages/angular_devkit/core/core_test_loader.js dist/bin/packages/angular_devkit/core/core_test_require_patch.js INFO: Elapsed time: 0.761s, Critical Path: 0.42s INFO: 2 processes: 2 local. INFO: Build completed, 1 test FAILED, 2 total actions //packages/angular_devkit/core:core_test FAILED in 0.4s /private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/bazel-out/darwin-fastbuild/testlogs/packages/angular_devkit/core/core_test/test.log ``` Closes bazel-contrib#2688
- Loading branch information