Super-powered spies and mocking for AngularJS unit testing