Skip to content

4.0.0-rc.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@jason0x43 jason0x43 released this 29 Sep 19:53
· 269 commits to master since this 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. Specifying suites on the command line will no longer override environment-specific suites lists.
  • Merge require config property into into plugins. By default plugins will be loaded as standalone scripts. If they need to use the external loader, set a useLoader 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. The connectTimeout property has been moved into functionalTimeouts. (#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. Setting coverage 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. Setting proxy to null 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 and basePath 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.