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.
- Port binding behaviour now starts from 0 to avoid race conditions. #TINY-13630
- Compiled tests moved to custom scratch folder. #TINY-13630
- Fixed an issue where using bedrock-auto with rspack bundling resulted in an error. #TINY-13550
- Add rspack dev server support. #TINY-12824
- Swapped out
mswforagar-sw. #TINY-13085
- Fixed an issue where
remapperwas still referenced in the webpack config. #TINY-12932
- Remote webdriver session ID is now logged after connecting #TINY-10835
- Failing tests that retry and then pass could exceed the "tests crashed" server timeout #TINY-11177
- AWS remote testing idle timeout was not set #TINY-11177
- New server-side APIs to accept a batch of results instead of a single result #TINY-11177
- Reverted TINY-10708 which was a server-side fix
- Client no longer waits for log requests to complete between tests, which should speed up remote testing #TINY-11177
- Console HUD no longer updates for individual tests #TINY-11177
- Client now posts test status only in batches every 30 seconds, this is the only time the console HUD will update #TINY-11177
- Server now controls the remote webdriver idle timeout, and makes sure a keep-alive command is sent regularly
- Single result server-side API #TINY-11177
- Server-side monitoring of single test timeouts. This is still monitored client side. #TINY-11177
- The Promise polyfill is no longer allowed on modern NodeJS frameworks so it has been removed. #TINY-11177
- Added static mock service worker js file mapping. #TINY-11415
IS_CInow checks thatisTTYis false. #TINY-10801
- Reduced progress logs when on CI to 10% intervals #TINY-10708
- Now supports using
pnpm-workspace.yamlto 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
--nameargument to correclty name test runs in LambdaTest dashboards
- Added
rightClicktoMouseEffect.ts#TINY-10490
- Add
--platformNameand--browserVersionarguments 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
webdriverio8.x.
- Urls like
/project/node_modulesand/project/<package name>/node_modulesare now using node package resolve to serve files. #TINY-10281
- Add
--useSeleniumcommand line argument to use aselenium/standalone-<browser>docker connection #DEVOPS-813
- Add
--guestcommand 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
edgeto 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-globdependency that relied on older versions of packages with security issues.
- Additional webdriver browser capabilities can be passed via the
--extraBrowserCapabilitiesargument in the bedrock-auto command. - Verbose logging mode can be passed via the
--verboseargument 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/inlinewebpack loader.
- The mouse position reset logic now only runs when required, instead of for every test.
- The
webpack-dev-serverwarning overlay would incorrectly show for re-exported types.
- Added the ability to serve binary files from custom routes.
- Upgrade to
webpack-dev-server4.x.
- Webdriver.io failed to connect to the webdriver instance on Node.js 17.
- Removed the deprecated
assertclient API. - Removed the TypeScript compiler
declarationMapandrootDiroverrides.
- 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-polyfilldue topromise-polyfillnever attempting to use the native Promise implementation and was quite slow.
- Swap from using the
@ephox/wrap-promise-polyfillwrapper to usingpromise-polyfilldirectly.
- 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_ENVis now set todevelopmentusing a webpackDefinePlugin.
- Upgrade to
ts-loader9.x andfork-ts-checker-webpack-plugin6.x to properly support TypeScript project references.
- Upgrade to
webdriverio7.x. - Upgrade to
webpack5.x. - Convert to using
async/awaitsyntax on the server. - Replaced
istanbul-instrumenter-loaderwithcoverage-istanbul-loaderas the former is no longer maintained.
- Dropped support for versions of Node.js below version 12.
- Improved test execution time on
ChromeandEdgeby using a faster mouse reset action.
- Stack traces for failed tests will now be resolved using the sourcemap where possible.
- The bedrock-auto
--debuggingPortargument 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
undefinedas the title.
- The error messages printed to the terminal will now be coloured and syntax highlighted.
- The legacy assertion module now throws an
AssertionErrorinstead 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
automode, now also works on Microsoft Edge.
- Calling
this.timeout(ms)inside a hook will no longer be ignored.
- Added support for
.mjstest files, overridden to load with webpack'sjavascript/autotype 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
--bucketand--bucketsparams 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
Bddmodule 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
--polyfillscommand 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
typescriptto be a peer dependency to ensure the project TypeScript version is used. - Upgraded to WebdriverIO 6 and upgraded other dependencies.
- Changed the
--testdirand--testdirscommand 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
promiseTestto test async functions (functions returning promises)
- Changed
asynctesttoasyncTest, following camelCase conventions. Old spelling remains for compatibility. - Changed
asyncTestso 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
Symbolif required.
- Fixed tests not running if an imported test can't be parsed.
- Added new
wipeBrowserCachesetting 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
--versionprinting[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
--skipResetMousePositionoption.
- 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-sandboxthrough 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-pluginto 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
nameproperty 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-headlessandfirefox-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