4.0.0-rc.0
Pre-release
Pre-release
Overview
This release contains a number of bug fixes and new features, and addresses a couple of our well-aged issues and PRs. Note that there are some breaking changes to how Intern is configured in this release.
This will likely (hopefully) be the last pre-release before 4.0.0.
Thanks to @bartoszkaczorek, @bryanforbes, @gitgrimbo, and @LingSpb for their issue and PR submissions!
Breaking configuration changes
- Prevent
suites
config argument from canceling<env>.suites
. Specifyingsuites
on the command line will no longer override environment-specific suites lists. - Merge
require
config property into intoplugins
. By default plugins will be loaded as standalone scripts. If they need to use the external loader, set auseLoader
property. (#799) - Allow default functional test timeouts to be configured. Functional test timeouts (executeAsync, find, and pageLoad) may now be specified in a
functionalTimeouts
config property. TheconnectTimeout
property has been moved intofunctionalTimeouts
. (#772) - Handle Node more like a remote environment. 'node' is now an be added to the environments list like other remote environments. If no environments are specified, 'node' is the default. (#780)
New features
- Basic help output was added to the built-in intern command. (#775)
- Support 'false' for
coverage
. Settingcoverage
to false fully disables coverage. - Add a browser ESM loader. The loader simply loads scripts using script injection as type 'module'. It is only valid in the browser; in Node, ESMs will be automatically handled through other means. (#782)
- What's old is new again! Support suite globs when using Intern's server (this feature was removed in the initial Intern 4 alpha). Globs are detected in the Browser executor using minimatch (an improvement over Intern 3) and sent to Intern's server for resolution. (#777)
- Allow separate tunnel and WebDriver proxy configs. If a top-level
proxy
config property is specified, it will be used for outgoing WebDriver requests. Otherwise, the Dig Dug tunnel's proxy value will be used. Settingproxy
tonull
or''
will force the Leadfoot server to ignore the tunnel's proxy setting. Similarly, if no tunnel proxy is specified but a config proxy is, the config proxy will be used for the Dig Dug tunnel. (#509) - Support a
functionalBaseUrl
config property. This property will be used as the base URL for relative GET requests. If not specified, the serverUrl will be used as the base URL (this is the existing behavior). (#764) - Add a
numPassedTests
property to Suite. This allows the number of tests that haven't been run (as opposed to those that have been explicitly skipped) to be determined. (#629)
Bug fixes and general updates
- Add a 'safe' isTask method to improve compatibility with ChaiAsPromised. (#785)
- Improve multi-step sourcemap resolution. In the Node executor, use the resolved source from the instrumentation source map (if one exists) when looking for the original source mapping.
- Reimplement Intern's Server using express.
- Increase Server's request body size limit so that data from large test suites won't be ignored.
- Fix Pretty.js initial test total value (#647, port of commit 7679fed)
- Treat both
internPath
andbasePath
as the base path in Interns' server. (#798) - Respond with a 404 in the
unhandled
middleware for GET and HEAD requests to non-existent resources. - Improve suite error reporting in Runner reporter.
- Make TDD/BDD lifecycle methods async-safe. When a lifecycle method such as
beforeEach
is added multiple times using the TDD or BDD interfaces, Intern will now wait for the return value of each method to resolve before calling the next. (#767) - Update Pretty reporter test count logic to not show unrun tests as failing (#629)
- Emit testIgnored messages for unrun tests in TeamCity reporter (#629)
- Don't print coverage reports in Coverage reporters when no files were covered.