Add test coverage

I added some test coverage and spies. I got a bit stuck when it came to mocking and testing a controller. By that point, there are like 3 layers. Is it really worth mocking each layer for the controller to go down to? Is there a better way?