MEET PIONEER
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
Pioneer is composed of four pieces to keep your code as DRY as possible while maintaining layers of readability
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 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 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.
WebElements are the raw DOM elements on the page. They are what widgets wrap in a clean API for you to interact with.