UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

852 lines (680 loc) 122 kB
Release history for Siesta: 5.6.1 2022-07-04 14:12 [FEATURES / ENHANCEMENTS] - Fixed typo in documentation [API CHANGES] [BUG FIXES] 5.6.0 2022-06-29 11:19 [FEATURES / ENHANCEMENTS] - Added support for running tests in LambdaTest cloud infrastructure - `throwsOkAsync/livesOkAsync` assertions now tracks unhandled promise rejections [API CHANGES] - If a chain step function returns a promise and in the same time calls a step's callback (1st argument of the step function), the 1st callback call is now ignored - previously was generating an error. The error is now generated starting from the 2nd call to callback. If a chain step function returns a promise it should not use the callback. [BUG FIXES] - Fixed a bug, that `change` event was not simulated after focus move away from input field, inside the nested iframe - Fixed a bug, that test with `async` test function could be finalized prematurily, if running with `enablePageRedirect` option - Fixed a bug, that typing a SHIFT+TAB combination could focus incorrect element, if previous sibling has `tabIndex === -1` - Fixed a bug, that `waitFor` method could leak memory when the page URL is changed 5.5.2 2021-05-12 14:11 [FEATURES / ENHANCEMENTS] - Experimental support for testing Lightning Web Components in the Salesforce Communities - New config option `ignoreException`, allowing to ignore certain exceptions during the test - Updated the WebDriver binaries, and tunneling binaries for cloud testing providers - Updated the Puppeteer version, this bumps the Chrome version to 91 [API CHANGES] [BUG FIXES] - Fixed #9631 - t.query fails for not rendered components 5.5.1 2020-10-05 08:38 [FEATURES / ENHANCEMENTS] - Puppeteer version upgraded to 5.2.1 (bundled with Chromium 85) - ChromeDriver binaries upgraded to 84 - Puppeteer launcher now creates a separate `Browser` instance for every page (should be more robust when many workers are active) [API CHANGES] - The bundled Node.js version upgraded to 12 LTS (should only be used internally by Siesta) [BUG FIXES] - Fixed a bug that a finalization of the root test file could be interrupted by the launch of sub-test which would lead to the "inactivity timeout" exception in automation - Fixed a bug that assertion `livesOkAsync` could miss a thrown exception - Fixed a bug, that if monkey test assertion is wrapped with `t.it()` it may not log the actions caused an exception - Fixed a bug, that `moveMouseTo` method could throw an exception, if used w/o a callback - Fixed #9611 - Siesta does not trigger input `change` event in Safari when value was changed by Delete or Backspace - Fixed #9619 - waitForEvent does not remove listener added 5.5.0 2020-05-28 08:42 [FEATURES / ENHANCEMENTS] - Experimental support for targeting + interacting with web components and any elements inside their shadowroot. To target nested web component elements, use this syntax `todo-app -> .myElement`. Any level of nesting is supported - Added support to query target in nested iframes of any depth (.frame1 -> #frame2 -> .myDiv) - The `during` function of the `firesOk` assertion can now return Promise, which will be awaited - Added 2 new test/project configs: `breakTestOnFail` and `breakSubTestOnFail` see the docs for details - Added new Angular example to the example test suite - Added new Polymer material design example to example test suite [API CHANGES] [BUG FIXES] - Fixed a bug, that a sub-test can be launched already after the top-level test has called its `exit` method - Fixed #9578 - Touch events not simulated correctly - Fixed #9582 - Siesta produces wrong target selector on contextmenu if mousedown adds CSS class - Fixed #9584 - Cannot type into contentEditable node 5.4.0 2020-04-09 10:19 [FEATURES / ENHANCEMENTS] - Bumped the `nyc` (code coverage tool) version to 15. There might be some breaking changes, please refer to the changelog https://github.com/istanbuljs/nyc/blob/master/CHANGELOG.md - Bumped various other dependencies to clean up the security vulnerabilities warnings [API CHANGES] [BUG FIXES] 5.3.2 2020-03-19 15:47 [FEATURES / ENHANCEMENTS] - `beforeEach/afterEach` now accepts `async` functions as hooks (which will be "awaited") - The `during` option of the `firesOk` assertion now accepts `async` functions (which will be "awaited"). Do not forget to `await` on the `firesOk` assertion itself in such case - The `waitFor*` assertions family now returns a Promise (which can be `await`-ed) - The event recorder can now optionally record 'wheel' events (Fixed #9526) [API CHANGES] [BUG FIXES] - Fixed #9523 - Method names not part of call stack 5.3.1 2020-01-28 16:36 [FEATURES / ENHANCEMENTS] - The `monkeyTest` method now has an additional signature in form of single options object. In this form, it supports a new config option - `skipTargets` with array of DOM selectors to be avoided by monkeys (Fixes #9439) - New 'turboMode' config for Project/Test descriptors which increase the speed of tests by lowering the internal delays of user actions simulation [API CHANGES] [BUG FIXES] - Fixed #9440 - Issues during Siesta version check - Fixed #9482 - TeamCity reporter should provide duration - Fixed #9498 - Mouse simulation not always reaching final point in a path 5.3.0 2019-10-27 15:05 [FEATURES / ENHANCEMENTS] - Updated Selenium bindings to latest version (along with all WebDriver binaries and Puppeteer). This brings support for latest MS Edge driver. Should be no user-visible changes, if you find any, please report on forum. [API CHANGES] [BUG FIXES] - Fixed #8951 - Mouse move actions should support an 'options' config object just like other mouse interactions - Fixed clicking on the checkbox field and toggle field in Ext 6.7.0 Modern 5.2.3 2019-05-29 10:33 [FEATURES / ENHANCEMENTS] - The `isEcmaModule` config is now supported in the `preload` descriptors - A new `testPreload` config, allows preloading of resources into the test script context, when `enablePageRedirect` option is enabled. - The &lt;script&gt; tags of the ES modules are now created with the `crossorigin` attribute set to "anonymous" - Added a note about code coverage for tests running on "localhost" [API CHANGES] [BUG FIXES] - Added a workaround for the Safari 12 bug, which could cause a `UnsupportedOperationError: Parameter 'x' has a boolean value, which is not allowed` error. More details: https://github.com/web-platform-tests/wpt/issues/15625 - Fixed modules loading for Node.js &gt; 10.5.0 - Fixed the exception in the Siesta UI in Firefox, when using the trial version - Fixed #8524: Crash when using t.is with TaskRecord 5.2.2 2019-02-22 13:23 [FEATURES / ENHANCEMENTS] [API CHANGES] [BUG FIXES] - Fixed an exception during Node.js launcher start in Siesta Lite (Standard was not affected) 5.2.1 2019-02-05 12:22 [FEATURES / ENHANCEMENTS] [API CHANGES] [BUG FIXES] - Fixed an exception during Node.js launcher start 5.2.0 2019-02-01 11:10 [FEATURES / ENHANCEMENTS] - Siesta now supports using Ecma6 modules in your Node tests, with `esm` loader. No special configuration is needed, just write your tests as Ecma modules. Note, that when running tests as Ecma6 modules in the browsers, the `isEcmaModule` config should still be specified - Added a sample test suite for a Vue app and a corresponding guide. - Bumped Nyc dependency to support code coverage for Ecma6 modules - Added `--inspect` and `--inspect-brk` command line options, to support debugging when testing in Node.js (previouly one would need to use --node-arg to pass this arguments to Node process). Passing this options will switch to `--max-workers=1` to avoid collision of debugger instances. More details in `--help` (Fixes #7302) - Spies can now be used on generator functions (tracks only calls to generator function itself, not to the iterator) - Added `ignoreCssClasses` config on Siesta.Recorder.Recorder class to be able to ignore certain CSS classes when recording locators (Fixes #7213) - Siesta now correctly sets the `code` property of all keyboard events - The &lt;script&gt; tags of the ES modules are now created with the `crossorigin` attribute set to "use-credentials" - For screenshots manipulation, Siesta now first tries to use the ImageMagic commands installed in the OS, and only then the bundled binaries - Puppeteer launcher updated to version 1.9.0 [API CHANGES] - The default Spy behavior has been changed to `callThrough`, better docs for `spyOn`. [BUG FIXES] - Fixed a bug, that would throw an exception, when using `isDeeply` assertion in Node.js - Fixed a bug, that would throw exception when using Node.js and applying 2 different spies to the same method. - Fixed a bug, that could prevent the launch of native events simulation server in Linux environment, when using --xvfb option - Fixed a bug, that could cause the tests, snoozed with `t.snooze()` method to execute in wrong order - Fixed a bug, that was preventing the remote Selenium Server to start - Fixed #6955: Synthetic events don't trigger 'change' event when an input is blurred 5.1.1 2018-10-08 09:12 [FEATURES / ENHANCEMENTS] [API CHANGES] [BUG FIXES] - Fixed a bug, that could cause the `SessionNotCreatedError` exception, when testing with Safari 12 locally 5.1.0 2018-10-01 19:43 This release introduces a completely rewritten code coverage module. It now runs on latest Istanbul, supports all Istanbul reports and ES6 syntax. Please refer to the "Code coverage" guide: https://www.bryntum.com/docs/siesta/#!/guide/code_coverage [FEATURES / ENHANCEMENTS] - Default value of the `--max-workers` config for the Puppeteer and NodeJS launchers set to 5. Default value of the `--chunk-size` config for the Puppeteer launcher set to 3. These are the optimal configs for running small (< 30) test suites in maximum parallelization. - Added `[ESC]` alias for the `[ESCAPE]` special key code [API CHANGES] - The configuration options `enableCodeCoverage` have been removed. Code coverage is now available from the command line only and is controlled with the `--nyc.reporter` option. - The configuration options `includeCoverageUnit` and `excludeCoverageUnit` have been removed. Use `--nyc.include`, `--nyc.exclude` instead. - The configuration option `coverageUnit` has been removed. Code coverage is now always collected per file. To get the same results from the bundled code - pre-instrument the codebase before bundling. - The command line option `--previous-coverage-report` has been removed. To create a combined coverage report from several consequent test suite launches, specify the `--nyc.clean=false` for the 2nd and following launches - The default value of the "forceDOMVisible" config for MS Edge is set to `true` now. This is to workaround the observed issues with "document.elementFromPoint" implementation in this browser - The Puppeteer launcher no longer redirects the stderr to `bin/webdriver.log` [BUG FIXES] - Fixed a bug, that would make exceptions, thrown synchronously during Node.js test execution, to appear in hard to read form - Fixed a bug, that would prevent using the `--proxy` option for Chrome and Firefox drivers - Fixed a bug, that would result in the exit code 1 for "snoozed" tests, failed with exception - Fixed #2009: Instrumenter bug - Fixed #3232: Siesta crashes during code cov data generation in TaskBoard 2.x - Fixed #2265: Implement offline instrumentation 5.0.0 2018-07-28 08:06 This Siesta release re-introduces Node.js support, which has outdated with recent Node versions. If your tests don't involve DOM, it will be much faster to run them in Node.js environment. This release also features a new mode for simulation of user actions - native events. In this mode, a real, OS-level events are simulated, so for example, when test will issue a "mouseMove" command, a real mouse cursor will be moved. This allows precisely test some intrinsic browser behavior, which synthetic simulation can not capture. Please refer to the docs for the `simulation` config. Siesta API now uses native JavaScript "promises" for all user actions and chain steps. See below for details. [FEATURES / ENHANCEMENTS] - All methods for simulation user actions, like `click`, `rightClick`, `type`, ``dragTo`, `moveMouseTo` etc now also return a `Promise`, which is resolved once the action has completed. The old API with callbacks is still supported Note, that `chain` method still seems to be more convenient for sequencing user actions. - If a `Promise` is returned from the test function (or it is an `async/await` function) - Siesta now waits until that promise is resolved/rejected before finalizing the test (Fixes #6235). Please refer to the `/examples/browser/1.unit-tests/returning_promise.t.js` for the example - If a `Promise` is returned from chain step function, or step function is `async/await` - Siesta now waits until that promise is resolved/rejected to continue the chain. Please refer to the `/examples/browser/1.unit-tests/chain_step_with_promise.t.js` for the example - The values of the "--cap" configs are now 1st tried to been parsed as JSON, and, if parsing succeeds, the resulting JSON object will be assigned to the config value. Otherwise the value is used as raw string - HTML report user interface now auto-expands the failed sub-tests (Fixes #6429) [API CHANGES] - The notion of "harness" has been renamed to "project" everywhere in sources, docs, and examples. So `Siesta.Harness.Browser` is now `Siesta.Project.Browser` etc. Old names are still supported as aliases. - The `wait` and `endWait` methods have been deprecated and removed from the documentation (still can be used) - The deprecated method `drag` has been removed. Please use `dragTo/dragBy` instead - The `mouseOver/mouseOut` methods have been removed. Please use regular mouse movement methods instead - The synchronous variants of the following methods are no longer supported `type`, `keyPress`, `click`, `rightClick`, `mouseDown`, `mouseUp`. All these methods are now always asynchronous - The `earlySetup` method is now called for the tests with disabled sandboxing - It is now mandatory to call the SUPER implementation of the `setup` and `earlySetup` test methods, please refer to the updated docs. - The deprecated PhantomJS launcher has been removed from the package, please use Puppeteer launcher instead, or headless Chrome - The SlimerJS launcher has been removed from the package, please use Puppeteer launcher instead, or headless Firefox [BUG FIXES] - Fixed #6084: Mousedown event missing pointerType 4.4.4 2018-04-18 11:13 [FEATURES / ENHANCEMENTS] - New WebDriver launcher command line option: --ff-pref, allows to set the preference in the Firefox profile - Two new assertion methods - `throwsOkAsync` and `livesOkAsync`, which allows to test the exception during asynchronous code. Please refer to the docs for more details. - Two new matchers added to Element class: hasSameWidth and hasSameHeight, two compare size of two DOM elements - New config option added - `failOnPromiseRejection` (enabled by default) (Fixes #5645) - Siesta now does not throw exception to determine the current source line, if browser supports `new Error().stack` construct. This helps during debugging with "Pause on caught exceptions" setting enabled (Fixes #6028) - The error message of the `waitForComponentQueryVisible` now provides more information (Fixes #5907) - Siesta now correctly works with SVG elements in IE11 / MSEdge (Fixes #2198) - Siesta now always show a user-provided description from the "waitFor" method, even if waiting has completed synchronously - Slightly improved the "BDD conventions" guide - Improved firing of the mouse events in some edge cases, like removing the click target from the DOM during the click [API CHANGES] [BUG FIXES] - Fixed targeting form fields in ExtJS 6.5.x Modern - Fixed #5686: Siesta cannot record CMD-+ - Fixed #5694: Siesta.Test#failWithException doesn't provide callstack - Fixed #5883: Siesta records vanilla button click as weird drag - Fixed #5939: Siesta fires mouseup after drag action even if pointerdown was prevented - Fixed #5942: 'click' event fired on wrong element if pointerup event alters what's at cursor - Fixed #5657: Crash in Siesta recorder: Failed to execute 'querySelectorAll' on 'Document': 'o:p' is not a valid selector [KNOWN ISSUES] - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup) Local drives setup works fine - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too. - SlimerJS 1.0.0-beta-1 version does not support disabling of SSL security 4.4.3 2018-01-09 16:02 [FEATURES / ENHANCEMENTS] - New WebDriver launcher command line option: --ff-pref, allows to set the preference in the Firefox profile - Siesta now always show a user-provided description from the "waitFor" method, even if waiting has completed synchronously - Slightly imporoved the "BDD conventions" guide [API CHANGES] [BUG FIXES] [KNOWN ISSUES] - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup) Local drives setup works fine - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too. - SlimerJS 1.0.0-alpha version does not support disabling of SSL security 4.4.2 2017-12-15 12:09 [FEATURES / ENHANCEMENTS] - WebDriver launcher now accept untrusted SSL certificates by default - Siesta now displays the source of the chain step that has timed out - You can now specify the log file of the SauceLabs tunneling utility with the --saucelabs-log-file command line option [API CHANGES] [BUG FIXES] - Fixed a bug, where `getCell/getRow` methods were returning incorrect values for grids with buffered rendering - Fixed #5304: Siesta doesn't replace selected text correctly when typing [KNOWN ISSUES] - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup) Local drives setup works fine - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too. - SlimerJS 1.0.0-alpha version does not support disabling of SSL security 4.4.1 2017-12-05 17:35 [FEATURES / ENHANCEMENTS] [API CHANGES] [BUG FIXES] - Fixed a bug, that could cause typing of BACKSPACE character in the number field to do nothing - Fixed an extra nesting level of "node_modules" folder in package [KNOWN ISSUES] - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup) Local drives setup works fine - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too. - SlimerJS 1.0.0-alpha version does not support disabling of SSL security 4.4.0 2017-12-05 09:35 [FEATURES / ENHANCEMENTS] - WebDriver launcher now supports a new config option `--headless` (supported for Chrome >= 60 / Firefox >= 57) which opens browser in headless mode and makes it safe to use --max-workers option! - New automation launcher, based on headless Chrome + Puppeteer. This launcher is a replacement for the one based on very poorly maintained PhantomJS project. You can try it with `bin/puppeteer`, featurewise it is equivalent to other launchers - Siesta now detects unhandled promise rejections (if browser supports it) and reports a failure (Fixed #4965) - The --report-file and --report-format command line options can now be repeated to generate several reports - The "isDeeply/isDeeplyStrict" assertions now supports comparing Map instances with keys, consisting of primitive values (Fixed #5031) - Added total number of assertions ("totalAssertions" attribute) and number of failed assertions ("failedAssertions" attribute) to the <testcase> node in the JUnit report - SlimerJS launcher uprgaded to 1.0.0-alpha release, providing support for Firefox 52-57 [API CHANGES] - The PhantomJS launcher has been deprecated. It will remain in the distribution for some time, but is removed from the documentation. All PhantomJS users are strongly advised to switch to Puppeteer/SlimerJS launchers. - NodeJS binaries have been updated, you may need to re-authorize those in Windows Defender [BUG FIXES] - Fixed a bug, that could cause `assertTextPresent` assertion to fail with exception - Fixed a bug, that could cause wrong behavior of the `type` method, when typing into the React text fields - Fixed #5036: Resizing a task in gantt works in Siesta but not using regular mouse - Fixed #5182: Crash in Siesta recorder when recording SHIFT+key [KNOWN ISSUES] - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup) Local drives setup works fine - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too. - SlimerJS 1.0.0-alpha version does not support disabling of SSL security 4.3.2 2017-09-27 09:27 [FEATURES / ENHANCEMENTS] - WebDriver binaries updated to latest versions (ChromeDriver - 2.32, EdgeDriver - 4.15063) - SauceLabs and BrowserStack tunneling binaries upgraded to latest versions - Added support for KeyboardEvent.key (Fixed #4567) - Added new config option for tests - `desc`. Its content will be shown as the tooltip of the test name (Fixed #4788) [API CHANGES] [BUG FIXES] - Fixed #3460: Wrong assertion annotation when using BDD.not API - Fixed #4683: Failed to execute 'setAttribute' on 'Element': 'style\' is not a valid attribute name - Fixed #4829: Exception when launching standalone webdriver server - Fixed #4854: Grid API getRow not working in Sencha Modern 4.3.1 2017-08-03 10:02 [FEATURES / ENHANCEMENTS] - The "scale to fit" UI option can now scale to single dimension only (scale to fit width, scale to fit height) - Siesta now supports the usage of ES6 arrow functions in the "t.chain()" method (Fixed #4355) t.chain(next => { ...; next() }) - New config `isEcmaModule` allows to load script file or preload files as the ES6 modules (&lt;script type="module"&gt;) - Ariadne now uses its own implementation of the `nth-child` pseudo in the component queries, `ariadne-nth-child`. Turns out, the stock `nth-child` is implemented completely incorrectly, using the position of the node in the result set, instead of the position in the siblings collection. This should improve component queries finding in certain cases. - Siesta now supports escaping of special characters sequence, for example, to type the text "[F3]" into some text field, specify it as "[[F3]]" [API CHANGES] [BUG FIXES] - Fixed #4579: Support Ext6 "modern/desktop" mode - Fixed #4353: Selected text in readOnly INPUT element cleared when typing - Fixed a bug, that was causing 'F3' text to be typed when actually typing '[F3]' (special key) - Fixed a bug, that was causing 'test' text to be typed when actually typing '[test]' (normal text in square brackets) 4.3.0 2017-04-17 11:06 [FEATURES / ENHANCEMENTS] - New UI option added - "scale to fit" (in the right-top toolbar). Scales the test iframe to fit the available space (Fixed #3601) - Firefox >= 47 support has been added (GeckoDriver) - MS Edge support has been added (for latest 14 version) (Fixed #2459) - When running in SauceLabs, Siesta now properly updates the job status after test completion (Fixed #4204) - Siesta now simulate PointerEvents in all browsers supporting them (notably latest Chrome) (Fixed #3837) - Better implementation of the `autoScrollElementsIntoView` functionality (Fixed #2098) - Added support for simulating 'wheel' event. https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent - Harness page now recognize the following query strings "filter" (set the tests grid filter) and "autolaunch" (launch all tests, respecting filter), so to launch test "my_test.js" one can open the link: http://myharness.com/?filter=my_test&autolaunch=1 The link to the test can be copied from the test grid context menu (Fixed #4252) - A new config option "referenceUrl" has been added. CTRL+click on such tests in the Siesta UI will open a new browser window with "referenceUrl". Can be used to attach links to external resources (like tickets, screenshots, etc) to the tests. - SlimerJS has been updated to latest 0.10.3 (supports Firefox up to 52) (Fixed #4267) [API CHANGES] - The monkey actions log from `monkeyTest` method is now included as part of the assertion output, and not as the separate test warning. It now also includes only the actually played actions (Fixed #3469) [BUG FIXES] - Fixed a bug, where the 'input' events were not simulated when typing [BACKSPACE] and [DELETE] special characters - Fixed a bug, that could cause code instrumentation to fail on "Ext.define(null, {})" definitions, when using "coverageUnit : 'extjs_class'" - Fixed a bug, that could prevent connection to cloud providers (SauceLabs, BrowserStack) using proxy - Fixed #3844: scrollTo incorrectly waits for BODY scroll - Fixed #4011: Unset environment variables, used by NodeJS bindings - Fixed #4013: Handle component queries with dot in xtype w/o warning in Ariadne - Fixed #4018: scrollTo recording broken for BODY scrolling - Fixed #4245: Siesta doesn't fire 'change' event for input fields 4.2.2 2016-12-15 18:21 [FEATURES / ENHANCEMENTS] - Siesta Recorder is now supported in all modern browsers (IE10+) - Siesta.Recorder now implements a new config - `shouldIgnoreDomElementId` (Fixed #3586) - Siesta Recorder now supports the following new options: `recordWindowResize/recordInitialWindowSize`. Please refer to the docs - The behavior of recording a `moveCursorTo` action when mouse is idle for some time is now controlled by a new recorder config option: `recordMouseMoveOnIdle` - The behavior of recording a `moveCursorTo` action when mouse cursor goes of certain "points of interest", like grid column headers and menu items, is now controlled by a new recorder config option: `recordPointsOfInterest` - Siesta Recorder now has a new option: `recordMouseMovePath`, which when enabled, will disable the `recordMouseMoveOnIdle` and `recordPointsOfInterest`. This option will record the mouse movement path and generate `moveCursorAlongPath` action - Siesta Recorder now has a new option: `recordScroll`, which when enabled, will record scroll events from all elements on the page - New methods for the Siesta.Test.Browser test class - `moveCursorAlongPath` and `scrollTo`, please refer to the doc - Compatibility fixes for `PointerEvent` enabled by default starting from Chrome 55. When using `Siesta.Test.SenchaTouch` test class and both `PointerEvent` and `TouchEvent` are available Siesta still uses `TouchEvents` (for backward compatibility) - Siesta now includes "Bowser" library for browser detection (Thanks for a lot for the respective authors). It is available as `bowser` global on the harness page and `bowser` property of the test class. See the docs for details. - The "click" and "dblclick" events are now more correctly fired in the same event loop iteration as the "mouseup" event (Fixed #3622) [API CHANGES] [BUG FIXES] - Fixed a bug, that was preventing code coverage feature to work with ExtJS 6 applications using microloader - Fixed a bug, that could cause `t.query()` method to return incorrect results for CSS selectors - Fixed #3207: autoRun : true not respected - Fixed #3674: String not quoted when generating code for arrays including strings - Fixed #3682: Single quotes not escaped in title attr querying - Fixed #3717: Use Sizzle for 'nth-of-type' queries in IE - Fixed #3723: Key events not simulated for readOnly text fields - Fixed #3757: Recorder crash in Ext JS 4.2.x - Fixed #3765: Crash when clicking SVG path node (has no className) - Fixed #3290: Review use of this.lastMoveCursorToEl 4.2.1 2016-11-22 10:55 [FEATURES / ENHANCEMENTS] - New command line option added "--randomize-tests-order". Helps you ensure your tests do not depend on each other. Also if you have some heavy tests, grouped in the certain place of the test suite, this option will sort of balance the load across the whole suite - Fixed #3474: Improve error message for wrong action object [API CHANGES] - When testing in BrowserStack, Siesta now enables popups in IE and Safari by default, by setting the `browserstack.ie.enablePopups` and `browserstack.safari.enablePopups` capabilities to `true`. If you need to disable popups in BrowserStack set those capabilities to `false` explicitly (Fixed #3532) [BUG FIXES] - Fixed a bug, that was causing "type" action to be incorrectly exported from recorder - Fixed a bug - Siesta Recorder fail to replay the selectors with escaped special characters inside of ":contains()" pseudo selector (normal playback not affected) - Fixed #3449: isElementVisible: Should not decide visibility status based on local style - Fixed #3505: Siesta recorder should only consider possible targets available at mouse down - Fixed #3577: Enter key not triggering form submit - Fixed #3591: Double quotes not escaped in "Show source" output - Fixed #3610: Siesta can't click on the rotated element 4.2.0 2016-10-24 21:55 [FEATURES / ENHANCEMENTS] - Siesta Recorder now uses Ariadne - a newly developed selector finding engine. It can find both DOM and Component queries and uses only the minimal required number of CSS classes / attributes, so the queries are smaller. In the same time, it avoids using positional selectors like ":nth-child()", direct child selector ">" as much as possible, so queries are robust to future changes in the markup - [Linux only] Added new command line argument --xvfb, which wraps every browser window (Chrome and Firefox) in its own virtual desktop, using xvfb server. Browser windows won't fight for focus in this case and this allows you to safely specify the greater than 1 values for --max-workers config. Greatly speeds up test suite execution - Added new test method `query` - which resolves an action target as if it would be defined by the Siesta.Test.ActionTarget string, see the docs for additional details - Added `assertTextPresent` assertion to verify a text is present (Fixed #2073). - Added two new test methods for simulating browser window blur/focus (`simulateDeactivateWindow` and `simulateActivateWindow`) - Added new `moveCursorBy` chain action, you can now call it in a chain like `{ moveCursorBy : [4,5] }` - Siesta now keeps the virtual cursor visible after finalizing the test - Added new harness config option `showTestDurationColumn` - self-explanatory (Fixed #3253) [API CHANGES] - [BREAKING] SlimerJS version has been updated to the latest, and it is not headless now, requires the presence of Firefox and graphical environment (xvfb or similar) (Fixed #3164) - The default value of the `recordOffsets` config in Siesta.Recorder.Recorder has been changed to `false`. Siesta will still automatically save the offset in the event target element, if that element is not reachable at its center (partially hidden by some other element for example) - Siesta now includes the target for recorded "type" actions [BUG FIXES] - Fixed #1413: Simulation of BACKSPACE key does not take current selection into account - Fixed #3153: Editing siesta drag target shows "a Siesta.Recorder.Target" in grid cell while editor open - Fixed #3160: 'buttons' event property not set during mousemove drag operation - Fixed #3284: Need to refresh the horizontal scrollbar in the assertions grid on assertion group expansion - Fixed #3285: Siesta should add text at the current caret position - Fixed #3286: Siesta should support HOME/END key caret navigation in text fields - Fixed #3289: "Ext.Loader" might be missing at the test's "doStart" stage - Fixed #3353: 'click' event incorrectly recorded after complex drag scenario - Fixed #3354: 'mouseUp' abstraction should handle 'click' - Fixed #3384: Siesta incorrectly records shift+tab - Fixed a bug, that was causing the output of the initial help screen to be displayed in colored (and thus garbaged) mode on Windows [KNOWN ISSUES] - The situation around the Firefox webdriver implementation is still in flux. The Selenium NodeJS package for 3.0.0 is still beta. So currently, locally, only FF46 and below can be tested. Remote testing including cloud providers works fine. We'll release a patch update as soon as all packages will went out of beta state 4.1.4 2016-09-23 16:48 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS [FEATURES / ENHANCEMENTS] - Siesta now automatically waits for the target point of the `dragTo` operation to appear in the DOM and become visible (Fixed #2404) - If a function chain step throws an exception, Siesta now finalizes the chain immediately, instead of waiting for the `defaultTimeout` period (or step timeout) - New command line option "build" to annotate test suite launches in the cloud infrastructure, also available in the reports (Fixed #3126) - Support for Ext JS 6.2.0 (minor adaptions to the grid layer) [API CHANGES] [BUG FIXES] - Fixed a bug that could cause "waitForExtComponentQueryReady" flag to work in correctly in the applications built with Sencha Cmd - Fixed a bug that could cause iframe of the test to be created in quirks mode in IE - Fixed #3152 - Recorder: cannot record / playback drag of grid column resizer - Fixed #3178 - Incorrect typeof RegExp check in StringPlaceholder 4.1.3 2016-08-05 14:08 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS [FEATURES / ENHANCEMENTS] - Siesta now issues a meaningful error, when trying to access cross-origin page using `pageUrl` option, instead of just crashing (Fixed #2626) - Siesta now issues a meaningful error, when `describe` (except the top-level one) is used without test instance (`describe()` instead of `t.describe()`) (Fixed #2091) - Launchers will now read the "siesta.json" file with the default config values from the current working directory (or from one of the parent directories), so once you've created such file, you can launch a test suite with just: `webdriver` (assuming `__siesta__/bin` is in PATH) (Fixed #2892) - TeamCity failure messages now includes test's hierarchy (Fixed #2989) - Fixed #2076: Recorder: Add copy to clipboard button [API CHANGES] - The "snooze" method now generates an "it" section - The format of config file, which can be specified with the "--config-file" option, has been changed. You will need to turn the previous object into the `cmd` key of the top object. Please refer to the updated "Siesta automation" guide. [BUG FIXES] - Fixed a bug, that could cause Siesta to mistakenly switch to inaccurate mouse movement simulation mode for small cursor movements - Added a workaround for a NodeJS bug (https://github.com/mishoo/UglifyJS2/issues/1055) which could cause the output of the "--help" option to be truncated - Siesta now resumes layout in the beginning of the non-sanboxed tests - Fixed #3084 - 'click' doesn't trigger focus of contenteditable node 4.1.2 2016-07-13 14:19 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS [FEATURES / ENHANCEMENTS] - It is now possible to specify a Firefox profile to be used for WebDriver launcher with --firefox-profile command line option (Fixed #1467) - HTML report now has a summary bottom bar and a button to load new data file with JSONS report (Fixed #2866) - The "breakOnFail" option processing has been refactored and improved. It now correctly stops the suite when it fails due to an exception, also stops the whole suite execution when running in automation mode (Fixed #2530) - New command line option --show-cursor - enables the visualization of the simulated mouse cursor when running in automation. Not supported in IE (Fixed #1946) - New option in the UI - "Observer mode" which switches to sequential run mode and `forceDOMVisible`. - The options menu in the Siesta UI is now automatically opened/closed on mouse enter/leave. Option entries now shows tooltips with short info. - "waitFor" action now supports defining an interval between the condition check (Fixed #2194) - The behavior of "mouseMovePrecision" option with intentionally very big value has changed, so that events are simulated for the *two* initial and *two* final points instead of one [API CHANGES] - The "--filter" command line option has been un-deprecated with a new behavior which matches the tests filter field in Siesta UI. See the tooltip of the filter fields for supported format. (Fixed #1709) - The "tap/doubleTap/longPress/swipe" actions now correctly wait for the target element to become visible and reachable by the cursor - The handling of the "waitForAppReady" option has been adapted to the latest Sencha Cmd behaviour. It now gets the name of the application from `Ext.manifest` and then waits for the `launched` property of the application instance to become true. [BUG FIXES] - Selenium JS bindings has been updated, which fixes the FireFox 47 issue - Fixed #2089: longpress doesn't work in certain conditions - Fixed #2559: Skip test and continue to the next test execution. - Fixed #2590: Siesta 4.0.4 Sencha Touch checkbox - Fixed #2786: Running checked test groups doesn't work - Fixed #2922: Code window for function step in recorder is truncated 4.1.1 2016-06-30 12:22 [KNOWN ISSUES] - FireFox 47 has a bug which breaks FireFox WebDriver: https://github.com/SeleniumHQ/selenium/issues/2110 Wait for 47.1 and stay on Firefox 46 in the meantime - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS [FEATURES / ENHANCEMENTS] - Added a check that launcher and harness page uses same version of Siesta - New command line option has been added for the WebDriver launcher - "--browser-arg", specifying command line arguments for the browsers (Fixed #2857) - New command line option has been added for the WebDriver launcher - "--restart-attempts", specifying how many times Siesta will try to restart a test if it has failed because of browser/WebDriver exception (Fixed #2837) - Assertions are now printed hierarchically, based on the "t.describe()/t.it()" tree structure (Fixed #2250) - The output from the test suite is no longer buffered for the --max-workers=1 case (Fixed #2836) - The --browserstack and --saucelabs command line options now read the default values from the environment variables (see the --help for details) - New test descriptor config has been added: `snooze`. It specifies a date, until which the test will be running as "todo" (all failurues from it will be silenced) (Fixed #2237) - New harness method has been added: `harness.getSelectedTest()`. It returns the test instance of the currently selected test in the UI, so you can call usual test methods on it (Fixed #2538) - The `harness.getQueryParam()` method has been made public and documented - The `preload/alsoPreload` configs now can contain nested arrays which will be flattened. Also the empty entries (like `null`, '', etc) will be ignored (Fixed #2382) - Added new bundle to the root of the distribution - "siesta-no-ext-all.js" which is basically the "siesta-all.js" prior 4.1.0 The "Getting started" guide has been updated with the new sample setup - The `suppressPassedWaitForAssertion` option made public (Fixed #2180) [API CHANGES] - [BREAKING] Assertions are now printed hierarchically, based on the "t.describe()/t.it()" tree structure, to restore the previous output format, use the --flat-output option [BUG FIXES] - Fixed a bug, that was causing wrong resolving of the report file name using values from the "--cap" option - Fixed a bug, that could cause assertion grid to be empty after test file selection - Fixed #2589: isDeeply stuck in infinite loop - Fixed #2821: Sencha Modern checkbox - Fixed #2722: Sandboxed mode: Exceptions always logged in the first test 4.1.0 2016-06-09 21:27 This release switches launchers code from using Rhino to NodeJS. As a result, the machine, running the launcher, will have much lesser memory and CPU loads, which is important for big suites. We've also added 2 new report formats - "html" and "jsons" and its now possible to visualize the test suite execution results. [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS [FEATURES / ENHANCEMENTS] - Launchers have been switched to NodeJS instead of Rhino. This change should speed up the execution and greatly reduce the memory consumption - IMPORTANT: Siesta user interace files are now compiled with Sencha Cmd, you will need to update your harness html page, see the "API changes" section below - Added new report type - JSONS (JSON structured). It is functionally equivalent to the exitsing JSON report, but all the results are structured hierarchically, based on the test groups information - Added new report type - HTML (JSONS+visualization). Can be used to see the test suite execution results in the browser (Fixed #1918) - The `t.cq()` and `t.cq1()` methods will now strip the leading `>>` characters if any - Disable output coloring in WebDriver launcher when not running in terminal, Windows output is now colored - The format names in command line options made case insensitive - SauceConnect and BrowserStack tunnel binaries has been updated to the latest versions - PhantomJS binaries has been updated to 2.1.1 [API CHANGES] - BREAKING: The "siesta-all.js" file is now bundled with the Siesta UI, compiled with Sencha Cmd, same about "siesta-all.css", you will need to update your harness html files. There's no need to include ExtJS on the page anymore, please see the /examples/index.html for a sample. - The "separateContext" option has been renamed to "enablePageRedirect" (old name is still supported). - "chainClick" method was deprecated, renamed to "clickAll". [BUG FIXES] - Fixed a bug, preventing the inheritance of the `preload` config, defined on the group with the non-empty `pageUrl` config - Fixed a bug, that could throw "TypeError: cmp.isHidden is not a function" if component query was targeting a Ext.Widget instance - Fixed #2798: isDeeply throws error when checking undefined properties 4.0.6 2016-04-07 13:17 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu. PhantomJS team does not provide binaries for Linux platform. [FEATURES / ENHANCEMENTS] - In the disabled sandbox mode, Siesta now clears all the registered Model entities, before starting a new test (for ExtJS 5 and 6) [API CHANGES] [BUG FIXES] - Fixed a bug preventing Siesta to start in IE8 - Fixed a crash when simulating events on Ext Widgets - Fixed a Recorder bug recording wrong offset when page was scrolled - Fixed #2676: Siesta recorder crashes if a Component has no xtype 4.0.5 2016-02-19 14:36 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu. PhantomJS team does not provide binaries for Linux platform. [FEATURES / ENHANCEMENTS] - Added better support for recording month picker components - Added a new "setUrl" Siesta.Test.Action - Added a new "hasAttributeValue" assertion [API CHANGES] [BUG FIXES] - Fixed a recorder bug that caused a crash if clicking a too long text in a P-tag - Fixed #1718: [Siesta Recorder] Right click not recorded correctly - Fixed #2573: Recorder: Failure to locate target when some element is scrolled - Fixed #2575: Recorder should record window size changes - Fixed #2576: Ctrl-A and Cmd-A should select all in text field - Fixed #2581: Siesta should not skip recording coordinates if they are required to resolve target - Fixed #2582: Siesta need to be more robust when resolving targets - Fixed #2592: Siesta should fire 'click' if drag operation ends in a child element of source element - Fixed #2597: Siesta doesn't properly resolve target for 'mouseDown' API call - Fixed #2598: mouseDown API should support asynchronous mode - Fixed #2610: BACKSPACE key should trigger load of previous page in history - Fixed #2612: Clicking SELECT options doesn't work - Fixed #2629: Siesta not focusing elements correctly 4.0.4 2016-01-20 12:08 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu. PhantomJS team does not provide binaries for Linux platform. [FEATURES / ENHANCEMENTS] - The new harness config option has been added - "mouseMovePrecision", which controls the speed of the all mouse movements. Setting it to some big number can provide significant performance boost for your tests. - Siesta now waits before typing if the passed target locator cannot be resolved - Improved object comparison failure message with isDeeply, powered by Deep-diff [API CHANGES] - The "dragPrecision" attribute of the test class has been renamed to "mouseMovePrecision" [BUG FIXES] - Fixed a bug, that could prevent BrowserStack tunnel from being started - Fixed #2498: Cannot run webdriver-server - Fixed #2285: Type [DELETE] does not clear selected value in FF and IE - Fixed #2512: Wrong target for 'type' action - Fixed #2514: autoCheckGlobals with needDone - Fixed #2551: Action target cannot be resolved when testing 5.1.2 - Fixed #2555: Targeting special CQ with space in attribute breaks 4.0.3 2015-12-20 10:02 [KNOWN ISSUES] - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu. PhantomJS team does not provide binaries for Linux platform. [FEATURES / ENHANCEMENTS] - WebDriver launcher now supports connection through a proxy server (Fixed #694) - A new method has been added to the test instance: "t.exit()" which stops the test execution (Fixed #2474) - The "enableCodeCoverage" option can now be disabled on the test file descriptor level - Updated Linux64 PhantomJS binaries with the one compiled for Ubuntu14.04 - Added two new API methods for the Ext JS Grid layer "assertCellIsEmpty" and "waitForCellEmpty" [API CHANGES] - The `beforeEach/afterEach` hooks now always receive the test instance being launched/completed as the 1st argument. The callback for asynchronous hooks is now passed as the 2nd argument. Please update your asynchronous `beforeEach/afterEach` hook accordingly. (Fixed #2476) Also hooks are now automatically recognized as asynchronous if they accept 2 arguments. [BUG FIXES] - Fixed #2270: Double click "Run Test" - Fixed #2480: Cannot read property 'frameElement' of undefined - Fixed #2485: autoCheckGlobals not working in 4.x version - Fixed #2491: Typing into textfield in IE11+ doesn't set value properly - Harness warnings for failed tests preloads are now reported as failed assertions in the correspondings tests 4.