mardi 3 mars 2015

karma fails with Unknown Provider

How do we inject a dependency needed by a controller into a karma test file?



describe('Unit: GlobalDashboardController', function () {

// load the controller's module
beforeEach(module('CockpitApplication'));

var ctrl, scope;

beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
ctrl = $controller('GlobalDashboardController', {
$scope: scope
});
}));

it('should check someVariable',
function() {
expect(scope.someVariable).toBeUndefined();
})
});


here is my controller but just an excerpt starting from top part.



(function(){
angular
.module('CockpitApplication')
.controller('GlobalDashboardController', [
'RestFactory',
'$scope',
'$state',
'$rootScope',
'$http',
'$filter',
'$interval',
'User',
'$locale',
'tmhDynamicLocale',
'ApiEndpoints',
'TimezoneFactory',
'UserInformationFactory',
'gdPerms',
'$timeout',
function(
RestFactory,
$scope,
$state,
$rootScope,
$http,
$filter,
$interval,
User,
$locale,
tmhDynamicLocale,
ApiEndpoints,
TimezoneFactory,
UserInformationFactory,
gdPerms,
$timeout
) {

$scope.someVariable = 'test';

..................


and this is the error I'm getting on the console. How do we inject gdPerms?



Error: [$injector:unpr] Unknown provider: gdPermsProvider <- gdPerms
http://ift.tt/1zFZTYS
at /Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:63:12
at /Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:3950:19
at Object.getService [as get] (/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4097:39)
at /Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:3955:45
at getService (/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4097:39)
at invoke (/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4129:13)
at Object.instantiate (/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4146:27)
at /Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:8384:28
at Object.<anonymous> (/Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:11:16)
at Object.invoke (/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4138:17)
Error: Declaration Location
at window.inject.angular.mock.inject (/Users/admin/repos/acme/acme-ui/app/bower_components/angular-mocks/angular-mocks.js:2319:25)
at Suite.<anonymous> (/Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:8:16)
at /Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:1:1
Firefox 34.0.0 (Mac OS X 10.8) Unit: GlobalDashboardController should FAILED
Error: [$injector:unpr] Unknown provider: gdPermsProvider <- gdPerms
http://ift.tt/1zFZTYS
minErr/<@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:63:12
createInjector/providerCache.$injector<@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:3950:19
getService@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4097:39
createInjector/instanceCache.$injector<@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:3955:28
getService@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4097:39
invoke@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4129:1
instantiate@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4146:27
$ControllerProvider/this.$get</<@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:8384:18
@/Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:11:16
invoke@/Users/admin/repos/acme/acme-ui/app/bower_components/angular/angular.js:4138:14
workFn@/Users/admin/repos/acme/acme-ui/app/bower_components/angular-mocks/angular-mocks.js:2348:11
angular.mock.inject@/Users/admin/repos/acme/acme-ui/app/bower_components/angular-mocks/angular-mocks.js:2319:25
@/Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:8:16
@/Users/admin/repos/acme/acme-ui/test/spec/controllers/main.js:1:1
Chrome 40.0.2214 (Mac OS X 10.8.3): Executed 1 of 1 (1 FAILED) ERROR (0.063 secs / 0.057 secs)
Firefox 34.0.0 (Mac OS X 10.8): Executed 1 of 1 (1 FAILED) ERROR (0.049 secs / 0.044 secs)

Aucun commentaire:

Enregistrer un commentaire