Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.
/ latte-pageobject Public archive

Create your page objects with a fluid, creamy and delicious BDD-like API for browser automation.

License

Notifications You must be signed in to change notification settings

Mindera/latte-pageobject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM version

This project is no longer mantained

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 = {
     // The standard ingredients of the Latte PageObject
     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;
         }
     },

     // The `crunchy` parts of the API, where you can add getters, or any other flavour to your Latte. But like any other hot, creamy drink, you should be moderate adding this sprinkles to your drink

     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.2 Fixing main module relative path
  • 1.0.1 Bug fixing
  • 1.0.0 Initial release

About

Create your page objects with a fluid, creamy and delicious BDD-like API for browser automation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published