Pioneer is an easy to understand javascript DSL to interact with your app via a real browser and test its state against expectations.


Pioneer allows you to maintain a readable code base for both programmers and product owners. It makes writing and debugging integration tests simpler, saving you time and frustration. Pioneer is stack agnostic, you can use it against your jquery powered SPA all the way up to a complex Ember/Angular/Backbone app.


npm install pioneer

The Pieces

Pioneer is composed of four pieces to keep your code as DRY as possible while maintaining layers of readability

  • Cucumber

    Your test outlines are written in the English-like Gherkin syntax that is both simple to write and straightforward to read. Gherkin is a *Business Readable*, *Domain Specific Language* that lets you describe software’s behavior without a tight coupling to the ever evolving implementation details. Gherkin serves two primary purposes — documentation and automated tests, but offers a third bonus feature— when it yells in red it’s talking to you, telling you what code you should write.

  • Step Definitions

    Step definitions contain the assertions about the state of your webpage. These step definitions are called from the cucumber steps. The steps compose multiple widgets and widget interactions to drive the UI into a state. Then you make assertions based on the state of the DOM.

  • Widgets

    Widgets are wrappers around your DOM. They are reusable components that abstract the specifics of interacting with your app into isolated components. That can be quickly changed in your app when the markup or interaction specifics changes.

  • WebDriver / WebElements

    WebElements are the raw DOM elements on the page. They are what widgets wrap in a clean API for you to interact with.

Getting Started With Pioneer.