Add tests

Adds a test suite :) 

I've also added some blank tests, assuming it should log errors if things break. If it would be better to move them to a separate PR with the code, that's fine.

Please review @perry and @incuna/js 
I was going to, but will create an issue for them instead