This release contains several major improvements to internals and
undocumented functionality, which potentially impact backwards
compatibility with before and after hooks, and reporter functionality.
For the average end-user these should be non-functional changes and
should just improve the quality of the reports that joe generates.
- The before and after hooks are now stable and documented
- `before` and `after` listers fire with the context as the item
they are bound to, receiving no arguments besides the optional
completion callback
- `task.before`, `task.after`, `suite.before`, `suite.after`
listeners fire with the context as the suite they are bound
to, receiving the first argument as the item for the hook, as
well as the optional completion callback
- Suite initialiser methods now get descriptive names instead
of no name
- If a suite or test encounter an error, the
`finish[Test|Suite]` reporting now always occurs regardless of
`reporting` preference
- The global suite now has a name of `global joe suite`, it is
up to the reporters to filter this out
- Reporter can now be specified via the `JOE_REPORTER`
environment variable
- Reporter must now be specified, no longer defaults to
`joe-reporter-console`
- `--joe-reporter` and `JOE_REPORTER` can now point to paths
to load
- `setReporter` now expects to receive a reporter instance
- Exit reporting now contains the reason for the exit as the
second argument
- `getItemName` has now been removed, it should be handled by
the reporters instead
- `uncaughtException` method has been removed, it doesn't make
sense being an API call
- Simplified cross environment (browser, windows, etc)
handling
- Exiting should now be more reliable across different node
versions and browser environments
- browsers will now have exit reporting by waiting for the
global suite to destroy
- on node
- joe will now listen to `beforeExit` so exits can
perform more reliably
- joe will no longer bother with `SIGINT` on
windows as `beforeExit` should now accomplish that
- joe will no longer listen to the global
suites completion event to exit, now it just
listens to the `beforeExit`, `exit`, and
`uncaughtException` events
- this is groundwork to solving [issue
#19](https://github.com/bevry/joe/issues/19)
(a regression since v1.8.0)
- Early node version support added once
again without the need of a polyfill
- Moved examples out from this
repository into the new [`joe-examples`
repository](https://github.com/bevry/joe-examples)
- Testing infrastructure now tests the
most common reporters against the most
common examples
- Updated base files