Add Tests

Adds tests. Increases test coverage from 30% to 70% :smile_cat: 
Why does `authenticate` throw a `RequestError`? I'd like to see that encoded in the test name. Something like, `testAuthenticateThrowsRequestErrorWhen...`