This document logs all user-impacting changes between officially-published, NPM-available, stable versions of Watai.
On development branches (i.e. not master
), it may also log changes between development versions, which will be concatenated on publication.
To get all details, and changes at all versions, including development ones, use git tag -n20
or use GitHub’s releases.
You are reminded that Watai uses SemVer, which means upgrades that have only a patch number (last digit) change are backwards-compatible, and versions with a minor number (second digit) are API-breaking while in 0
major versions.
- Drop support for Node 0.6 to allow updating dependencies.
- Update all dependencies.
An upgrade guide is available to help you update your tests through breaking changes.
- Renamed following concepts (#116):
Feature
toScenario
.Scenario
toSteps
(inside a feature/scenario)Flow
toVerbose
.Data
toFixture
.Hook
toLocator
.Widget
toComponent
.
Backward compatibility is kept for this version, but support for previous names is deprecated and will be removed in a later version. Feedback on these names welcome.
- Added compatibility with NPM 3.
- Update documentation generation tool from JSdoc 2 to JSdoc 3.
ignore
config option has been added (#111, thanks @debona).- SauceLabs view is now available, transmitting test status as pass/fail and outputting a direct link to the job as well as an estimate of how many minutes are left on your account (#87).
- Upgraded obsolete object getters and setters syntax (#107).
- Updated
wd
to v0.2.6. Some incompatibilities were introduced in v0.2.2. They are in advanced monkeypatching usage, you probably didn't do any with Watai. - Added an
editorconfig
file to help contributors (#118, thanks @GillesFabio). - Added
jscs
to unify syntax and guide contributors (#119, thanks @GillesFabio).
- Errors appearing on suite load are now visible (#112, thanks @debona).
- Async configuration entries can now use a promise instead of a callback. This allows for async errors to be detected.
- Improve display of unknown errors.
- Important improvements in development tools.
- Use native
Q
's long stack traces instead oflongjohn
module.
- Automatic file upload support: if you set a file field to a local file path, the file will be sent to the Selenium server, making test assets available anywhere automatically.
- Add support for (async) functions in configuration.
- Add
bail
config key: if set totrue
, stops a test after the first failing feature. - Almost all errors now have a proper description (server not reachable, elements not found in state assertions, widget actions failures…).
- Authentication data is now taken from
seleniumServerURL
, allowing distant services such as SauceLabs to be used. - Metadata fields
name
,tags
andbuild
are now parsed in config files and sent to the Selenium server. - There is now a default hook type:
css
(#92). If you target an element with only a String, it will be considered as a CSS selector.
An upgrade guide is available to help you update your tests through breaking changes.
- Widgets' elements and actions are now declared in a single hash (#94). Your existing Widgets will need to have their
elements
key removed. - Widgets and Features don't need an enclosing curly braces anymore (#91). Your existing Widgets and Features will need to have their enclosing curly braces removed.
- Textual content matches against Strings or RegExps only, not Numbers anymore (reserving for later use) nor any other Object (preventing errors).
Runner.driverInit
event is not fired anymore. API clients should use theRunner.start
event instead.Runner.restart
event is not fired anymore. API clients should use theRunner.start
event instead.
- Switch to WD as the underlying library (#89).
- Growl view gives much more details.
- Explicit setters (
set<ElementName>
) now have precedence over magic setters. --installed
exits with1
instead of3
if Watai is not installed properly.
- Compatibility with Node 0.10 has improved (#90).
- Config may be set through (a)sync functions.
- Q promises updated to 0.9.6, bringing many new possibilities for API clients.
- Add a
--config
option to override config at run time. - Add a
--setup
option to override setup at run time. - URLs in config (base, selenium) may be provided as URL objects instead of pure strings, allowing for specific overrides. Compatibility with strings is still offered, and will be maintained.
- Add a
browser
config shortcut with usual defaults fordesiredCapabilities
. - Default view now includes "Instafail".
- Failure reports now give the exact spent time, not the expected timeout.
- Setup options are now loaded from setup files. This is not considered breaking since loading them from config never worked.
- Minor visual improvements to the Flow view.
- Fix default config values not being loaded in some cases.
- Add "Flow" view, a more detailed step-by-step view of all actions, non-interactive for compatibility with headless environments.
- Add "PageDump" view: if activated, a failure in the first feature will trigger a page source dump. Useful in headless environments.
- Report failures in real-time.
- Show feature ID for easier identification.
- Warn when no features are found in a suite.
- Add magic for "Option" elements.
- Only one suite may be loaded at a time, no more CLI varargs.
- Much improved tests speed.
- "test" is now a valid suite name.
- Remove the need for log-level config tweaking.
- Made magic methods much more resilient.
- Correct a minor Dots view summary phrasing inconsistency.
- Improve missing elements tests performance.
- Add 'Instafail' view.
- Improve CLI animator and view management system.
- Prevent magically-added shortcuts from being referenced in state assertions by mistake.
- Improve Function matchers output in case of failure.
- Ensure cursor is redrawn even after a failure.
- User-provided functions may be used in state descriptions.
- Fix DuckDuckGo examples for non-English systems.
- RegExp matchers may now be used on value attributes.
- Add magic setters to send keystrokes to elements:
set<ElementName>(input)
. These wrap WebDriver failures, unlike assignment setters.
- Change syntax for action calls: call them as if they were immediate functions.
- Return status code 1 on tests fail.
- Add
--version
option. - Scenarios warn if an undefined step is used.
- Offer a "dots" view for non-interactive environments.
- Boolean state descriptors now describe visibility instead of DOM existence.
- The obsolete
Widget.has
syntax is removed. - Scenario functions now have their parameters passed directly as array elements, not embedded in another array.
--help
exits with 0.- Dots view logs browser readiness.
- All feature scenario steps now respect a timeout, even if WebDriver raises errors when executing one.
- Fixed Dots view crash on error reports.
First public, and last stable version, in the 0.2 series.