`) then merging using `git merge main`.
1. Push your changes to your fork; `git push origin`.
1. In your browser, navigate to [mochajs/mocha](https://github.com/mochajs/mocha).
You should see a notification about your recent changes in your fork's branch, with a (green?) button to create a pull request.
@@ -126,7 +126,7 @@ Now that the pull request exists, some tasks will be run on it:
1. Be patient while your PR is reviewed.
This can take a while.
We may request changes, but don't be afraid to question them.
-1. Your PR might become conflicted with the code in `master`.
+1. Your PR might become conflicted with the code in `main`.
If this is the case, you will need to [update your PR](#up-to-date) and resolve your conflicts.
1. You don't need to make a new PR to any needed changes.
Instead, commit on top of your changes, and push these to your fork's branch.
diff --git a/.github/ISSUE_TEMPLATE/01-bug.yml b/.github/ISSUE_TEMPLATE/01-bug.yml
index fc43efff3f..b46ae9d9b3 100644
--- a/.github/ISSUE_TEMPLATE/01-bug.yml
+++ b/.github/ISSUE_TEMPLATE/01-bug.yml
@@ -3,7 +3,7 @@ body:
description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
label: Bug Report Checklist
options:
- - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
required: true
- label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
required: true
diff --git a/.github/ISSUE_TEMPLATE/02-documentation.yml b/.github/ISSUE_TEMPLATE/02-documentation.yml
index 09517048ac..0a98e59f35 100644
--- a/.github/ISSUE_TEMPLATE/02-documentation.yml
+++ b/.github/ISSUE_TEMPLATE/02-documentation.yml
@@ -3,7 +3,7 @@ body:
description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
label: Documentation Request Checklist
options:
- - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
required: true
- label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
required: true
diff --git a/.github/ISSUE_TEMPLATE/03-feature-request.yml b/.github/ISSUE_TEMPLATE/03-feature-request.yml
index 00778f454a..c37843969e 100644
--- a/.github/ISSUE_TEMPLATE/03-feature-request.yml
+++ b/.github/ISSUE_TEMPLATE/03-feature-request.yml
@@ -3,7 +3,7 @@ body:
description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
label: Feature Request Checklist
options:
- - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
required: true
- label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
required: true
diff --git a/.github/ISSUE_TEMPLATE/04-repository-tooling.yml b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
index 3d3908fa31..7e6c6a57f1 100644
--- a/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
+++ b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
@@ -5,9 +5,9 @@ body:
options:
- label: I have tried restarting my IDE and the issue persists.
required: true
- - label: I have pulled the latest `master` branch of the repository.
+ - label: I have pulled the latest `main` branch of the repository.
required: true
- - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
required: true
- label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 20df860769..9f8ff8ca6a 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -6,7 +6,7 @@ Otherwise we may not be able to review your PR. -->
- [ ] Addresses an existing open issue: fixes #000
- [ ] That issue was marked as [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
-- [ ] Steps in [CONTRIBUTING.md](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md) were taken
+- [ ] Steps in [CONTRIBUTING.md](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) were taken
## Overview
diff --git a/.github/workflows/compliance.yml b/.github/workflows/compliance.yml
index 70d9714e5f..99afe754fa 100644
--- a/.github/workflows/compliance.yml
+++ b/.github/workflows/compliance.yml
@@ -12,7 +12,7 @@ name: Compliance
on:
pull_request:
branches:
- - master
+ - main
types:
- edited
- opened
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index 16b4463dd8..308ba603f1 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -25,7 +25,7 @@ A "user" for the purpose of this document is any _individual developer_ who cons
A user interacts with contributors.
A user interacts with the software, web site, documentation, etc., which these contributors provide.
-As a user, you're expected to follow the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) when interacting in Mocha's "official" social spaces.
+As a user, you're expected to follow the [code of conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) when interacting in Mocha's "official" social spaces.
This includes:
- Any channel under the `mochajs` Discord
@@ -54,7 +54,7 @@ Contributions include (but are not limited to):
1. Researching the user base, getting feedback, etc. Don't spam.
A contributor is _usually_ a user as well, but this isn't a hard-and-fast rule.
-A contributor is also expected to adhere to the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) as a user would.
+A contributor is also expected to adhere to the [code of conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) as a user would.
As you can see, it's wide open! Think of it another way: if you are _adding value to Mocha_, then you are a contributor.
@@ -123,7 +123,7 @@ You may choose to do zero or more of these _at their discretion_:
- Add new maintainers to the team
- Tag releases and publish Mocha to npm
-> While maintainers have the ability to commit directly to the `master` branch, _this is to be avoided_ if any other maintainer could reasonably take issue with the change, or the change affects Mocha's API or output.
+> While maintainers have the ability to commit directly to the `main` branch, _this is to be avoided_ if any other maintainer could reasonably take issue with the change, or the change affects Mocha's API or output.
> For example, a spelling correction in `CHANGELOG.md` may not require a pull request.
> A change to a reporter's output most certainly would! Maintainers are trusted to use their best judgement; if unsure, err on the side of caution.
@@ -347,8 +347,8 @@ Here are some suggestions:
## Branches
-`master` is the only maintained branch in `mochajs/mocha` or any of the other repos.
-**`master` is the only branch to which force-pushing is disallowed.**
+`main` is the only maintained branch in `mochajs/mocha` or any of the other repos.
+**`main` is the only branch to which force-pushing is disallowed.**
Maintainers may push new branches to a repo, as long as they remove them when finished (merging a PR will prompt to do so).
@@ -371,7 +371,7 @@ Likewise, if the PR is `semver-minor`, create or use a new milestone correlating
If it's unclear what the next milestone will be, use or create a milestone named `next`.
This milestone will be renamed to the new version at release time.
-By using milestones, we can cherry-pick non-breaking changes into minor or patch releases, and keep `master` as the latest version.
+By using milestones, we can cherry-pick non-breaking changes into minor or patch releases, and keep `main` as the latest version.
**This is subject to change, hopefully.**
@@ -380,7 +380,7 @@ By using milestones, we can cherry-pick non-breaking changes into minor or patch
_It's easier to release often._
1. Decide whether this is a `patch`, `minor`, or `major` release.
-1. Checkout `master` in your working copy & pull.
+1. Checkout `main` in your working copy & pull.
1. Modify `CHANGELOG.md`; follow the existing conventions in that file.
Use the "pull request" number, unless there isn't one.
_You do not need to add Markdown links; this is done automatically._
@@ -391,15 +391,15 @@ _It's easier to release often._
(Hint--use `-m`: e.g., `npm version patch -m 'Release v%s'`)
1. This command will update the list of authors (from the Git history) in `AUTHORS`, and add GitHub links to `CHANGELOG.md`.
1. These changes are then added to the Git "stage" and will be added to the commit.
-1. Push `master` to `origin` with your new tag; e.g. `git push origin master --tags`
+1. Push `main` to `origin` with your new tag; e.g. `git push origin main --tags`
1. Copy & paste the `CHANGELOG.md` lines to a new GitHub "release".
Save release as draft.
1. Meanwhile, you can check [the build](https://travis-ci.org/mochajs/mocha) on Travis-CI and [GitHub Actions](https://github.com/mochajs/mocha/actions?query=workflow%3A%22Windows+CI%22).
1. Once the build is green, you'll want to trigger an update of `mochajs.org`:
- 1. _If you're doing a prerelease_, fast-forward the `next` branch to `master`, and push it.
+ 1. _If you're doing a prerelease_, fast-forward the `next` branch to `main`, and push it.
This updates [https://next.mochajs.org](https://next.mochajs.org).
That's all.
- 1. _If this is NOT a prerelease_, fast-forward the `mochajs.org` branch to `master` and push it.
+ 1. _If this is NOT a prerelease_, fast-forward the `mochajs.org` branch to `main` and push it.
This updates [https://mochajs.org](https://mochajs.org).
1. _If this is a "final" release_ (the first release of a major _after_ one or more prereleases) then remove the `next` tag from npm via `npm dist-tag rm next`.
1. Finally, you're satisfied with the release notes, open your draft release on GitHub, then click "publish."
diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md
index 1f3e92e943..3505acb8e4 100644
--- a/PROJECT_CHARTER.md
+++ b/PROJECT_CHARTER.md
@@ -32,7 +32,7 @@ The **Mocha** project is part of the [OpenJS Foundation], which operates transpa
- Command-line execution and options
- Browser-based execution and options
- [Project administration](https://github.com/mochajs/admin)
- - [Contribution guide](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ - [Contribution guide](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
- General support for multiple levels of tests, including (but not limited to):
- Unit tests
- Integration tests
@@ -72,7 +72,7 @@ Changes to the following **cannot** unilaterally be applied by project leadershi
- Mocha's Project Charter (this document)
- Mocha's [Code of Conduct]
-- Mocha's licenses: [MIT](https://github.com/mochajs/mocha/blob/master/LICENSE) (for code) and [CC-BY-4.0](https://github.com/mochajs/mocha/blob/master/docs/LICENSE-CC-BY-4.0) (for documentation/website)
+- Mocha's licenses: [MIT](https://github.com/mochajs/mocha/blob/main/LICENSE) (for code) and [CC-BY-4.0](https://github.com/mochajs/mocha/blob/main/docs/LICENSE-CC-BY-4.0) (for documentation/website)
### §3.1: Other Formal Project Relationships
@@ -103,5 +103,5 @@ Section Intentionally Left Blank
Section Intentionally Left Blank
[openjs foundation]: https://openjsf.org
-[maintainers.md]: https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md
-[code of conduct]: https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md
+[maintainers.md]: https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md
+[code of conduct]: https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md
diff --git a/README.md b/README.md
index 3545f7a721..ca740e1715 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️
-
+
@@ -23,10 +23,10 @@
## Links
- **[Documentation](https://mochajs.org)**
-- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)**
-- [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md)
-- [Contributing](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
-- [Development](https://github.com/mochajs/mocha/blob/master/.github/DEVELOPMENT.md)
+- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)**
+- [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md)
+- [Contributing](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md)
+- [Development](https://github.com/mochajs/mocha/blob/main/.github/DEVELOPMENT.md)
- [Discord](https://discord.gg/KeDn2uXhER) (ask questions here!)
- [Issue Tracker](https://github.com/mochajs/mocha/issues)
@@ -59,7 +59,7 @@ You might want to help:
- New to contributing to Mocha? Check out this list of [good first issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
- Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
-- The [maintainer's handbook](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) explains how things get done
+- The [maintainer's handbook](https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md) explains how things get done
Finally, come [chat with the maintainers on Discord](https://discord.gg/KeDn2uXhER) if you want to help with:
@@ -69,6 +69,6 @@ Finally, come [chat with the maintainers on Discord](https://discord.gg/KeDn2uXh
## License
-Copyright 2011-2022 OpenJS Foundation and contributors. Licensed [MIT](https://github.com/mochajs/mocha/blob/master/LICENSE).
+Copyright 2011-2022 OpenJS Foundation and contributors. Licensed [MIT](https://github.com/mochajs/mocha/blob/main/LICENSE).
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_large)
diff --git a/browser-entry.js b/browser-entry.js
index 67517db357..4e6f9e939a 100644
--- a/browser-entry.js
+++ b/browser-entry.js
@@ -71,8 +71,8 @@ process.listenerCount = function (name) {
process.on = function (e, fn) {
if (e === 'uncaughtException') {
- global.onerror = function (err, url, line) {
- fn(new Error(err + ' (' + url + ':' + line + ')'));
+ global.onerror = function (msg, url, line, col, err) {
+ fn(err || new Error(msg + ' (' + url + ':' + line + ':' + col + ')'));
return !mocha.options.allowUncaught;
};
uncaughtExceptionHandlers.push(fn);
diff --git a/docs/API.md b/docs/API.md
index 7b63a6b433..a6e17bf284 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -13,7 +13,7 @@ Otherwise, **you probably want the [main documentation](https://mochajs.org)**.
## Other Links
- **[Main Documentation](https://mochajs.org)**
-- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)**
-- [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md)
+- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)**
+- [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md)
- [Discord](https://discord.gg/KeDn2uXhER) (ask questions here!)
- [Issue Tracker](https://github.com/mochajs/mocha/issues)
diff --git a/docs/README.md b/docs/README.md
index f85b53adec..0c3e69e53f 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -40,6 +40,6 @@ cp: docs/_dist/_headers: No such file or directory
:copyright: 2016-2018 [JS Foundation](https://js.foundation) and contributors.
-Content licensed [CC-BY-4.0](https://raw.githubusercontent.com/mochajs/mocha/master/docs/LICENSE-CC-BY-4.0).
+Content licensed [CC-BY-4.0](https://raw.githubusercontent.com/mochajs/mocha/main/docs/LICENSE-CC-BY-4.0).
-Code licensed [MIT](https://raw.githubusercontent.com/mochajs/mocha/master/LICENSE-MIT).
+Code licensed [MIT](https://raw.githubusercontent.com/mochajs/mocha/main/LICENSE-MIT).
diff --git a/docs/api-tutorials/custom-reporter.md b/docs/api-tutorials/custom-reporter.md
index 99ca9d6d2f..b537fe1ee2 100644
--- a/docs/api-tutorials/custom-reporter.md
+++ b/docs/api-tutorials/custom-reporter.md
@@ -13,7 +13,7 @@ If you're looking to get started quickly, here's an example of a custom reporter
To use this reporter, execute `mocha --reporter /path/to/my-reporter.js`.
-For further examples, the built-in reporter implementations are the [best place to look](https://github.com/mochajs/mocha/tree/master/lib/reporters). The [integration tests](https://github.com/mochajs/mocha/tree/master/test/reporters) may also be helpful.
+For further examples, the built-in reporter implementations are the [best place to look](https://github.com/mochajs/mocha/tree/main/lib/reporters). The [integration tests](https://github.com/mochajs/mocha/tree/main/test/reporters) may also be helpful.
## The `Base` Reporter Class
diff --git a/docs/changelogs/README.md b/docs/changelogs/README.md
index 2c059575d2..1f201b251f 100644
--- a/docs/changelogs/README.md
+++ b/docs/changelogs/README.md
@@ -4,4 +4,4 @@ These are changelogs for (very) old versions of Mocha.
These changelogs are _not_ included in the website, and are here only for archival purposes.
-_If you're looking for the current changelog, [here is the current changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)._
+_If you're looking for the current changelog, [here is the current changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)._
diff --git a/docs/index.md b/docs/index.md
index 4f45ad6c43..bf9c12fd23 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2363,7 +2363,7 @@ $ npm test
In addition to chatting with us on [our Discord][discord-mocha], for additional information such as using
spies, mocking, and shared behaviours be sure to check out the [Mocha Wiki][mocha-wiki] on GitHub.
For a running example of Mocha, view [example/tests.html](example/tests.html). For the JavaScript API, view the [API documentation](api/)
-or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
+or the [source](https://github.com/mochajs/mocha/blob/main/lib/mocha.js).
[//]: # 'Cross reference section'
[bash-globbing]: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
@@ -2375,14 +2375,14 @@ or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
[discord-mocha]: https://discord.gg/KeDn2uXhER
[emacs]: https://www.gnu.org/software/emacs/
[emacs-mocha.el]: https://github.com/scottaj/mocha.el
-[example-babel]: https://github.com/mochajs/mocha-examples/tree/master/packages/babel
+[example-babel]: https://github.com/mochajs/mocha-examples/tree/main/packages/babel
[example-connect-test]: https://github.com/senchalabs/connect/tree/master/test
[example-express-test]: https://github.com/visionmedia/express/tree/master/test
-[example-mocha-test]: https://github.com/mochajs/mocha/tree/master/test
-[example-mocha-config]: https://github.com/mochajs/mocha/tree/master/example/config
+[example-mocha-test]: https://github.com/mochajs/mocha/tree/main/test
+[example-mocha-config]: https://github.com/mochajs/mocha/tree/main/example/config
[example-superagent-test]: https://github.com/visionmedia/superagent/tree/master/test/node
-[example-third-party-reporter]: https://github.com/mochajs/mocha-examples/tree/master/packages/third-party-reporter
-[example-typescript]: https://github.com/mochajs/mocha-examples/tree/master/packages/typescript
+[example-third-party-reporter]: https://github.com/mochajs/mocha-examples/tree/main/packages/third-party-reporter
+[example-typescript]: https://github.com/mochajs/mocha-examples/tree/main/packages/typescript
[example-websocket.io-test]: https://github.com/LearnBoost/websocket.io/tree/master/test
[expect.js]: https://github.com/LearnBoost/expect.js
[expresso]: https://github.com/tj/expresso
diff --git a/test/unit/throw.spec.js b/test/unit/throw.spec.js
index ccb7ef6c11..cafadaa4bc 100644
--- a/test/unit/throw.spec.js
+++ b/test/unit/throw.spec.js
@@ -2,6 +2,7 @@
/* eslint no-throw-literal: off */
+var sinon = require('sinon');
var Mocha = require('../../lib/mocha');
var Suite = Mocha.Suite;
var Test = Mocha.Test;
@@ -29,6 +30,7 @@ describe('a test that throws', function () {
uncaughtHandlers.forEach(function (listener) {
process.on('uncaughtException', listener);
});
+ sinon.restore();
});
describe('non-extensible', function () {
@@ -172,4 +174,35 @@ describe('a test that throws', function () {
runner.run();
});
});
+
+ describe('stack', function() {
+ it('should include the stack when throwing async', function(done) {
+ var test = new Test('im async and throw null async', function(done2) {
+ process.nextTick(function throwError() {
+ throw new Error('test error');
+ });
+ });
+ suite.addTest(test);
+ runner = new Runner(suite);
+ sinon.stub(runner, 'fail');
+
+ runner.on(EVENT_RUN_END, function() {
+ try {
+ expect(runner.fail, 'to have all calls satisfying', [
+ expect.it('to be a', Runnable),
+ expect.it('to be an', Error).and('to satisfy', {
+ message: /test error/i,
+ stack: /throwError/i,
+ uncaught: true
+ })
+ ]).and('was called once');
+ } catch (err) {
+ return done(err);
+ }
+
+ done();
+ });
+ runner.run();
+ });
+ });
});