Nickolay Platonov
14 June 2013

New Release: Siesta 1.2.0

Today we are very glad to announce the Siesta 1.2.0 “GA” release. This is a quite major release, with many […]

Today we are very glad to announce the Siesta 1.2.0 “GA” release. This is a quite major release, with many improvements in terms of features and stability, and we advise all Siesta users to upgrade to this version.

This release introduces a few API changes, mostly in the default values of some settings and behavior of the “hostPageUrl” option. You can still use the previous behavior by setting the old default values explicitly in your harness configuration. Please read through the changelog (including the sections for Siesta 1.2.0-beta1 and beta-2) and the updated documentation.

In terms of new features, the biggest one is the support for sub-tests – an isolated test executed inside of the main test. These are useful when you want to test several asynchronous processes simultaneously – since each test will have now maintain its own set of assertions:

[crayon striped=”false” lang=”javascript” nums=”false” toolbar=”false”]
StartTest(function (t) {
t.subTest(‘Load 1st store’, function (t) {
var async = t.beginAsync()

store1.load({
callback: function () {
t.endAsync(async);
t.isGreater(store1.getCount(), 0, “Store1 has been loaded”)
}
})
})

t.subTest(‘Load 2nd store’, function (t) {
var async = t.beginAsync()

store2.load({
callback: function () {
t.endAsync(async);
t.isGreater(store2.getCount(), 0, “Store2 has been loaded”)
}
})
})
})
[/crayon]

To visualize this, the assertion list in the Siesta UI is now a tree panel:

snapshot4

Sub-tests also made it easy for us to add support for the very popular BDD style (as seen in Jasmine) – this is another major feature in the 1.2.0 release. BDD tests are very readable and encourages splitting your tests in small and maintainable parts with a clear purpose of each part, making the intent of the test author much clearer:

[crayon striped=”false” lang=”javascript” nums=”false” toolbar=”false”]
describe(‘Simulating a click does not trigger blur automatically’, function (t) {

t.it(‘should trigger focus/blur when clicking inside/outside of the text input’, function (t) {

t.expect(numberOfClicks).toBe(1)
});

t.it(‘should not trigger extra blur event when clicking on another text input’, function (t) {

t.expect(numberOfClicks).toBeLessThan(2)
});
});
[/crayon]

Please refer to the introductory guide for more details.

Siesta UI

The user interface got some love in this release too. We upgraded the UI to use Ext JS 4.2.0 which is more stable and has better performance. The big new feature in the interface is our brand new Component Inspector which allows you to quickly find components and their xtypes on the test page and interact with it through a new console line scoped to the test iframe. When you hover over a component you can also click the found xtype to go straight to the Sencha docs to learn more.

In the test tree panel, the filter field now accepts “|” for separating multiple filter values combined with “OR”.

Under the hood, we’ve improved the event simulation when targeting elements in the nested iframes, Siesta now supports all types of interactions even when having multiple versions of Ext JS running in different iframes. Also, the simulation of “blur/focus” events has been improved. A few issues regarding the launching of the tests and many other smaller ones were resolved, resulting in better stability.

We really hope you will like this release. As always your feedback is very welcome.

Enjoy the Siesta!

Nickolay Platonov

Uncategorized