Latte Page Object
A small library to allow creating your page objects with a fluid, creamy and delicious BDD-like API with the ability to
add crunchy
properties that adds special personal flavour to your page objects for browser automation tests.
Installation
npm install latte-pageobject --save
Usage
Your test could be implemented like the following example:
pageObject.on.childPageObject
.and.on.grandChildPageObject
.given.somePrecondition()
.and.otherPrecondition()
.(*)
.when.userDoesSomething()
.and.doesSomethingElse()
.(*)
.then.itShouldHaveHappenedAThing()
.and.itShouldHaveHappenedAnotherThing()
.(*)
To achieve such API, one can have the following API mold:
var api = {
on: {
grandChildPageObject: grandChildPageObject
},
given: {
somePrecondition: function () {
createPrecondition();
return this;
},
otherPrecondition: function () {
createOtherPrecondition();
return this;
}
},
when: {
userDoesSomething: function () {
createPrecondition();
return this;
},
doesSomethingElse: function () {
createOtherPrecondition();
return this;
}
},
then: {
itShouldHaveHappenedAThing: function () {
createPrecondition();
return this;
},
itShouldHaveHappenedAnotherThing: function () {
createOtherPrecondition();
return this;
}
},
getSomeMeaningValueFromMyPageObject: function () {
return something;
}
}
latte.makeIt(api, [parentPageObject, anotherParentPageObject]);
Tests
npm test
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style.
Add unit tests for any new or changed functionality. Lint and test your code.
Release History
- 1.0.1 Bug fixing
- 1.0.0 Initial release