JSPM

latte-pageobject

1.0.2
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 13
    • Score
      100M100P100Q50250F
    • License MIT

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

    Package Exports

    • latte-pageobject

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (latte-pageobject) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    NPM version

    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.1 Bug fixing
    • 1.0.0 Initial release