117 lines
4.6 KiB
Markdown
117 lines
4.6 KiB
Markdown
# Jasmine Core 6.0.0-alpha.1 Release Notes
|
|
|
|
This is a pre-release, intended to offer a preview of breaking changes and to
|
|
solicit feedback.
|
|
|
|
## A Note About Pre-Release Compatibility
|
|
|
|
There may be additional breaking changes in future 6.0 pre-releases or in the
|
|
final 6.0 release. That's allowed by the semver specification, but users are
|
|
sometimes unpleasantly surprised by it.
|
|
|
|
NPM's implementation of carat version ranges assumes that subsequent
|
|
pre-releases and final releases are fully compatible with earlier pre-releases.
|
|
If your package.json contains `"jasmine-core": "^6.0.0-alpha.1`,
|
|
NPM might install any later 6.x version even though there is no guarantee of
|
|
compatibility. If that isn't ok, you should specify an exact pre-release version:
|
|
`"jasmine-core": "6.0.0-alpha.1`.
|
|
|
|
|
|
## Breaking changes
|
|
|
|
### Changes that affect reporters
|
|
|
|
* Irrelevant properties such as `status` and `failedExpectations` are omitted
|
|
from [the event passed to suiteStarted](https://jasmine.github.io/api/6.0.0-alpha.1/global.html#SuiteStartedEvent).
|
|
|
|
This change should be compatible with most existing reporters but could break
|
|
reporters that manage their internal state in unusual ways. Please
|
|
[open an issue](https://github.com/jasmine/jasmine/issues/new?template=bug_report.yml)
|
|
if you find a published reporter package that works with jasmine-core 5.x but
|
|
not with this release.
|
|
|
|
### Changes that affect browser boot files
|
|
|
|
* The `createElement` and `createTextNode` options of `HtmlReporter` are ignored.
|
|
`HtmlReporter` now unconditionally uses `document.createElement` and
|
|
`document.createTextNode`.
|
|
|
|
### Changes that affect spec writing
|
|
|
|
* HTML reporters cache configuration throughout each run. Configuration changes
|
|
made while specs are running will not affect reporter behavior.
|
|
* Global error spies always receive a single argument. Previously, the browser
|
|
error event was passed as the second argument.
|
|
|
|
## New features
|
|
|
|
* A new `HtmlReporterV2` with several improvements over the old `HtmlReporter`:
|
|
* Clicking a spec/suite link does exact filtering rather than a substring
|
|
match.
|
|
* The old dots are replaced with a progress bar. This improves usability with
|
|
large suites and fixes an accessibility problem.
|
|
* Details of failed specs are displayed as soon as each spec finishes.
|
|
* Initialization and wire-up in boot files are much simpler.
|
|
|
|
If you're using jasmine-browser-runner or copying boot1.js from the standalone
|
|
distribution, you'll automatically get the new reporter. If you maintain your
|
|
own boot files, you'll get the old reporter unless you update your boot1.js
|
|
to match the one that's in this package.
|
|
|
|
The new reporter produces `spec` query string parameters that are different
|
|
from those created by the old reporter. If you use non-Jasmine software that
|
|
interprets the `spec` parameter, such as karma-jasmine, you may not be able to
|
|
adopt `HtmlReporterV2` unlesss it's updated.
|
|
* Use `globalThis` to determine the global object during initialization
|
|
This makes jasmine-core more tolerant of buggy bundlers or loaders that
|
|
cause `this` to be undefined in the global context.
|
|
|
|
|
|
## Deprecations
|
|
|
|
* Warn if jasmine-core is loaded as an ES module in a browser.
|
|
This is an untested and unsupported configuration that has been known to cause
|
|
problems in the past.
|
|
* Deprecated `HtmlReporter` and `HtmlSpecFilter` in favor of `HtmlReporterV2`.
|
|
|
|
|
|
## Documentation improvements
|
|
|
|
* Improved API reference documentation for APIs that are used from browser boot
|
|
files.
|
|
|
|
|
|
## Internal improvements
|
|
|
|
* Removed remaining code that supported suite re-entry.
|
|
* Encapsulated suite and spec result and status management.
|
|
* Adopted strict mode throughout the codebase.
|
|
* Decomposed `HtmlReporter` into components and converted to ES6 classes.
|
|
* Made global error handling more uniform between browsers and Node.
|
|
|
|
|
|
## Supported environments
|
|
|
|
This version has been tested in the following environments.
|
|
|
|
| Environment | Supported versions |
|
|
|-------------------|--------------------------------|
|
|
| Node | 20, 22, 24 |
|
|
| Safari | 16**, 17** |
|
|
| Chrome | 141* |
|
|
| Firefox | 102**, 115**, 128**, 140, 143* |
|
|
| Edge | 141* |
|
|
|
|
\* Evergreen browser. Each version of Jasmine is tested against the latest
|
|
version available at release time.<br>
|
|
\** Supported on a best-effort basis. Support for these versions may be dropped
|
|
if it becomes impractical, and bugs affecting only these versions may not be
|
|
treated as release blockers.
|
|
|
|
|
|
|
|
|
|
------
|
|
|
|
_Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
|