All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added static mock service worker js file mapping. #TINY-11415
IS_CI
now checks thatisTTY
is false. #TINY-10801
- Reduced progress logs when on CI to 10% intervals #TINY-10708
- Now supports using
pnpm-workspace.yaml
to fetch workspaces #TINY-10688
- LambdaTest tunnel now correctly shutdowns if Webdriver creation fails
- Webdriver now uses tunnel name for LambdaTest tunnels #TINY-10604
- Tests now correctly reflect their status in LambdaTest dashboards
- Tests use the
--name
argument to correclty name test runs in LambdaTest dashboards
- Added
rightClick
toMouseEffect.ts
#TINY-10490
- Add
--platformName
and--browserVersion
arguments for Lambdatest #TINY-10466
- Add
--remote <webdriver>
to support remote webdrivers: aws device farm and lambdatest #TINY-10006 - Tunneling configuration: Ssh Tunneling and LambdaTest Tunneling #TINY-10006
- Upgrade to
webdriverio
8.x.
- Urls like
/project/node_modules
and/project/<package name>/node_modules
are now using node package resolve to serve files. #TINY-10281
- Add
--useSelenium
command line argument to use aselenium/standalone-<browser>
docker connection #DEVOPS-813
- Add
--guest
command line argument for Microsoft Edge to disable popups like the new Personalization experience. #TINY-10014
- update
fork-ts-checker-webpack-plugin
. #TINY-9855
- Upgraded webdriverio dependencies. #TINY-9852
- Headless browsers will now detect an available debugging port instead of always using port 9000.
- Allow
edge
to be used as an alias forMicrosoftEdge
.
- Chrome headless tests no longer hang indefinitely if something else is running on port 9000.
- Modifier keys would not be released on all browsers when using a key effect.
- The error message was lost when running on phantomjs.
- Removed the unused
node-glob
dependency that relied on older versions of packages with security issues.
- Additional webdriver browser capabilities can be passed via the
--extraBrowserCapabilities
argument in the bedrock-auto command. - Verbose logging mode can be passed via the
--verbose
argument in bedrock and bedrock-auto.
- Images (svg, png, gif, jpg, etc...) can now be imported by tests, and will be available as data URIs using the
asset/inline
webpack loader.
- The mouse position reset logic now only runs when required, instead of for every test.
- The
webpack-dev-server
warning overlay would incorrectly show for re-exported types.
- Added the ability to serve binary files from custom routes.
- Upgrade to
webpack-dev-server
4.x.
- Webdriver.io failed to connect to the webdriver instance on Node.js 17.
- Removed the deprecated
assert
client API. - Removed the TypeScript compiler
declarationMap
androotDir
overrides.
- The webdriver process would not be stopped in some cases when tests successfully completed.
- The server would not gracefully shutdown if an unexpected runner error occurred.
- The wrong timeout value was reported when using the bedrock configured defaults.
- Uncaught errors from other windows or frames wouldn't report correctly.
- Rolled back to using the old
@ephox/wrap-promise-polyfill
due topromise-polyfill
never attempting to use the native Promise implementation and was quite slow.
- Swap from using the
@ephox/wrap-promise-polyfill
wrapper to usingpromise-polyfill
directly.
- Use inline source maps when running in manual mode.
- Webpack compilations were incorrectly triggered when the previous compilation finished and no changes had been made.
- Fixed compilation issues on Windows due to incorrect paths.
process.env.NODE_ENV
is now set todevelopment
using a webpackDefinePlugin
.
- Upgrade to
ts-loader
9.x andfork-ts-checker-webpack-plugin
6.x to properly support TypeScript project references.
- Upgrade to
webdriverio
7.x. - Upgrade to
webpack
5.x. - Convert to using
async
/await
syntax on the server. - Replaced
istanbul-instrumenter-loader
withcoverage-istanbul-loader
as the former is no longer maintained.
- Dropped support for versions of Node.js below version 12.
- Improved test execution time on
Chrome
andEdge
by using a faster mouse reset action.
- Stack traces for failed tests will now be resolved using the sourcemap where possible.
- The bedrock-auto
--debuggingPort
argument didn't work for PhantomJS.
- The runner was incorrectly using unpolyfilled Promises.
- The first stack trace line was incorrectly removed on Firefox.
- BDD hooks failed to register when passing
undefined
as the title.
- The error messages printed to the terminal will now be coloured and syntax highlighted.
- The legacy assertion module now throws an
AssertionError
instead of a genericError
.
- Formally deprecated the legacy assertion module.
- Bedrock didn't fail if the generated test script had syntax errors.
- The mouse position reset feature, when running in
auto
mode, now also works on Microsoft Edge.
- Calling
this.timeout(ms)
inside a hook will no longer be ignored.
- Added support for
.mjs
test files, overridden to load with webpack'sjavascript/auto
type instead ofjavascript/esm
- Fixed a regression introduced in 11.0.0 whereby --customRoutes couldn't be used in manual mode.
- Fixed bedrock not returning a non-zero error code when tests unexpectedly stopped.
- Removed "framework" mode, which was used for running QUnit tests.
- Added ability to use
--bucket
and--buckets
params in bedrock and bedrock-auto commands.
- Fixed beforeEach and afterEach hooks running in the wrong order.
- Fixed tests failing if the title contained "??" in the title.
- Added new
Bdd
module for using mocha compatible BDD style tests. - Added support for retries and timeouts per test for mocha compatibility.
- Added support for skipping tests.
- Added support for "only" tests.
- Added the
--polyfills
command line parameter which allows including core-js polyfills as part of the test run.
- Fixed IE 11 not shutting down with newer IEDriverServer versions.
- Added support for the new Chromium based Microsoft Edge Browser.
- Changed
typescript
to be a peer dependency to ensure the project TypeScript version is used. - Upgraded to WebdriverIO 6 and upgraded other dependencies.
- Changed the
--testdir
and--testdirs
command line parameters to expand glob patterns
- Fixed tests getting stuck when reaching the maximum retry count.
- Fixed incorrectly reported test times.
- Internal runner restructuring.
- Added
promiseTest
to test async functions (functions returning promises)
- Changed
asynctest
toasyncTest
, following camelCase conventions. Old spelling remains for compatibility. - Changed
asyncTest
so that it fails (instead of timing out) when an exception is thrown during execution of the test method.
- Remove the sample "suite" tests. The failing ones were causing timeouts.
- Fixed JS sourcemaps not working in bedrock manual mode.
- Fixed broken import generation for js tests.
- Fixed webpack getting stuck in an infinite compilation loop when compiling many tests.
- Added support for polyfilling
Symbol
if required.
- Fixed tests not running if an imported test can't be parsed.
- Added new
wipeBrowserCache
setting for auto mode to ensure Internet Explorers cache is cleared.
- Upgrade dependencies.
- Fixed cache headers not being set for certain assets.
- Upgrade dependencies.
- Fixed bedrock manual html logs not being escaped.
- Fixed encoding of errors for textual output.
- Added toString on PprintAssertionError, so that diffs print nicely in fast-check error reports.
- Re-exported TestError in bedrock-client
- Moved more code into bedrock-common
- Fixed TS sourcemaps not working in bedrock manual mode.
- XML CDATA sections are now split if they contain a CDATA end token
- XML output is no longer pretty-printed as a result.
- Assertions made with the new Assert library are no longer encoded as HTML entities in XML and stderr output.
- Added support for Test.bs.js files and made typescript optional.
- Jenkinsfile refactor
- Split into several packages. Users will now need to depend on "@ephox/bedrock-client" and "@ephox-bedrock-server"
- Monorepo using yarn workspaces and lerna.
- New assertions library with composable equality, based on "@ephox/dispute" library.
- Test failures output to stderr (max of 5 failures shown)
- Changed key effects to use left meta key instead of right meta key.
- Upgraded to Webdriver 5.13.1
- Changed to using webdriver.io instead of selenium's webdriver implementation under the hood.
- Improved --debuggingPort to work with firefox in headless mode.
- Fixed chrome-headless not maximizing screen size in auto mode.
- Fixed the frame context not being restored if an error occurred while looking up the frame.
- Fixed the "test ran too long" error not reporting correctly.
- Fixed
--version
printing[Object object]
instead of the actual version.
- Ported main app to typescript
- Removed unnecessary files from distribution
- Fixed adding the Array.flatMap polyfill during module import and using a polyfill that was enumerable.
- Fixed duplicate files being packaged.
- Fixed log messages from tests not being printed in the reports.
- Fixed the mouse reset position added in 4.5.1 not actually positioning to (0, 0).
- Ported runner to TypeScript.
- Removed scratch area in runner.
- Major version bump, due to removal of UnitTest.domtest
- Added types to client package.
- Allow tests to fail with a TestLabel type.
- Removed UnitTest.domtest - this should have been a major version bump.
- Changed the version range for portfinder to be an exact version that doesn't randomize the ports.
- Test methods now accept a "string | (() => string)" as the test failure message. See TestLabel.ts
- Rename LegacyAssert to Assert
- Remove Assert.html - it just made a struct. Not very useful.
- Added types internally, and made minor performance tweaks.
- Fixed bedrock manual throwing incorrect warnings about needing to run with bedrock-auto.
- Changed resetting the mouse position to only run on Chrome, as it's currently the only browser that uses the hosts mouse position.
- Changed bedrock to reset the mouse position before each test when running in auto mode. This can be disabled with the new
--skipResetMousePosition
option.
- Don't pin bedrock to use typescript 3.3.x anymore.
- Added "bucket" and "buckets" options to grunt task. These options let you run a subset of tests.
- Fixed failing atomic tests
- Upgraded finalhandler to 1.1.2
- Upgraded command-line-usage to 4.1.0
- Fixed tests failing to run on Microsoft Edge 18 due to MicrosoftWebDriver.exe changing to W3C mode by default.
- Removed preinstall script requiring yarn over npm
- Added a configuration option to pass
no-sandbox
through to chrome-headless. Used for docker tests.
- Improved --debuggingPort to work with chrome in headless mode.
- Fixed so that Test.tsx files are loaded when testing with
--testdir
- Fixed so that tsx files are handled by loaders and remapper
- Pinned
fork-ts-checker-webpack-plugin
to use version 1.0.x as 1.1.0 and higher appears to have introduced a regression on Windows.
- Fixed an issue where tests could fail with
ERROR in Entry module not found: Error: Can't resolve 'ts-loader'
.
- Fixed progress reporting the incorrect total number of tests.
- Fixed missing name attributes in junit reports if a file contained multiple tests.
- Changed skipped safari tests to include a dummy result.
- Disable bedrock-auto tests on Safari as webdriver no longer runs on v12.1.0 due to the --legacy argument being removed.
- Use the
name
property of package.json to add the package name to/project/
for stable resource URLs - Add stable URLs for package resources in yarn workspace packages using the package.json name
- Switched from awesome-typescript-loader to ts-loader + fork-ts-checker-webpack-plugin + tsconfig-paths-webpack-plugin
- Revert acorn change in 4.0.11
- Hard coded the acorn dependency to less than 6.0.7, as it breaks builds with webpack
- Fixed double encoding issue with html diffs.
- Fixed issue where IE would throw split of undefined when reporting errors since trace was sometimes an object.
- Fixed encoding issue of raw error messages the if the error message contained html it would be rendered on page.
- Removed bedrock-repl bin from package.json
- Added startup message listing version for quicker feedback
- Improved over-escaping of error messages
- Removed bedrock-repl as it didn't make sense without bolt
- Removed all dependence on bolt
- Fixed diff error message reporting
- Gracefully timeout individual tests
- Test results are sent to node server instead of being scraped using selenium
- Tests are chunked into batches to 'solve' memory leaks
- Tests are retried once on failure (when not stopping)
- Testing page is reloaded on failure to avoid cascades
- Test HUD has been reformatted
- Removed SauceLabs integration
- Add error content to the UnitTest logging output
- Supports logging history in UnitTest
- Upgraded to typescript 3
- added support for shift key in key combos
- support for chrome and firefox headless modes in bedrock-auto via
chrome-headless
andfirefox-headless
- added IFrameTest.js to the samples
- introduced '=>' symbol in selectors to represent inside an iframe's contents
- added --delayExit command line option to keep browser open after finishing test run
- updated key effects and mouse effects to handle dispatching within iframes
- changed click from an ActionSequence to a WebElement action because Edge supports it
- adds testing page for scraping content
- generates reports on timeouts
- uses getText instead of getInnerHtml to match new selenium webdriver APIs
- improves test report format
- improves experimental SauceLabs integration