Skip to content

Native types exceptions can crash Mocha runner #3320

@fargies

Description

@fargies

Prerequisites

  • Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
  • Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
  • 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
  • Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend avoiding the use of globally installed Mocha.

Description

Native types exceptions in async callbacks raises an exception in Mocha runner, stopping the test-sequence.

Steps to Reproduce

throw a native type exception in an async test.
See associated merge request.

Expected behavior: exception should be caught and test should fail

Actual behavior: runner stops with following stack trace:

.../mocha/lib/runner.js:707
  err.uncaught = true;
               ^
TypeError: Cannot create property 'uncaught' on string 'error'
    at Runner.uncaught (.../mocha/lib/runner.js:707:16)
    at process.uncaught (.../mocha/lib/runner.js:820:10)
...

Reproduces how often: 100%

Versions

  • The output of mocha --version and node node_modules/.bin/mocha --version: 5.0.5
  • The output of node --version: v8.6.0
  • The version and architecture of your operating system: macOs 10.13.3
  • Your shell (bash, zsh, PowerShell, cmd, etc.): zsh
  • Your browser and version (if running browser tests):
  • Any other third party Mocha related modules (with versions):
  • The code transpiler being used:

Additional Information

Not really sure that the proposed fix will work in all environments, there may be better ways to fix this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: waiting for authorwaiting on response from OP or other posters - more information needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions