-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(jasmine): unhanded promise rejection causes tests suit to pass #2707
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alan-agius4
requested review from
alexeagle,
gregmagolan,
mattem and
soldair
as code owners
May 27, 2021 10:03
alan-agius4
force-pushed
the
jasmine-runner
branch
from
May 27, 2021 13:05
1e8b315
to
bfb3bdc
Compare
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/[email protected]/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
alan-agius4
force-pushed
the
jasmine-runner
branch
from
May 27, 2021 13:11
bfb3bdc
to
6aef558
Compare
alexeagle
approved these changes
May 27, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently unhandled promise rejection caused tests suit to pass.
Example:
The reason for this is because Jasmine
execute
method returns aPromise
, which was not handled properly. See: https://unpkg.com/browse/[email protected]/lib/jasmine.js#L267Without this fix
With this fix: