In Chapter 7, Building an App from the Outside In with Behavior-Driven Development, we learned about BDD and wrote a feature file to define the behavior of a small web app. Now we are going to build our todo list manager. We'll start with a rich JavaScript UI defined in AngularJS, then move on to the TDD of a backend API and model. We'll discuss some of the difficulties of BDD along with some ideas for how to take advantage of its benefits while avoiding its pitfalls. We'll end with an initial implementation of authentication middleware for our API using JSON Web Token.
Here are some of the things we'll learn in this chapter:
Iterating between acceptance tests and application code
Building a rich JavaScript web UI with AngularJS
Testing UI interactions with a rich web app
Using Rack middleware for authentication