For some reason, karma does not find the provider injected in the route resolver. I have something which looks like this:
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('sample', {
url: '/:id',
templateUrl: 'view/single.html',
controller: 'SampleCtrl',
resolve : {
getSomething : function(serviceGoesHere, $stateParams) {
return serviceGoesHere.get($stateParams.id);
}
}
});
});
my controller looks like this:
.controller('SampleCtrl', SampleCtrl);
SampleCtrl.$inject = ['$scope', 'getSomething'];
function SampleCtrl($scope, getSomething) {
$scope.sample = getSomething;
$scope.greeting = 'Hello World!';
}
and my test looks like this:
describe('test first', function() {
beforeEach(module('app'));
var $controllerConstructor;
var scope;
beforeEach(inject(function($controller, $rootScope){
$controllerConstructor = $controller;
scope = $rootScope.$new();
}));
it('says hello world', function() {
ctrl = $controllerConstructor('RecipeSingle', {$scope:scope});
expect(scope.greeting).toEqual('Hello World!');
});
});
And it drops:
Error: [$injector:unpr] Unknown provider: getSomethingProvider <- getSomething <- SampleCtrl
Any ideas??
Aucun commentaire:
Enregistrer un commentaire