Error: [$injector:unpr] Unknown provider: $localStorageProvider <- $localStorage
Я получаю сообщение об ошибке при запуске теста на жасмин с кармой. Я не уверен, как с этим справиться, я попытался помещать localstorage в мою инъекцию в свой файл жасмина, но не повезло. Все, что я хочу сделать, это убедиться, что мой контроллер распознается моим файлом Jasmine для начала.
Javascript Файл:
define(['app'], function (app) {
'use strict';
app.controller('SplashController',
function ($scope, $state, $localStorage, $window, $modal, pageService, authenticationService, focusService, config) {
var state;
focusService.focusMain();
$scope.beginLogon = function() {
authenticationService.authenticate();
};
$scope.checkMedia = function (state) {
$state.transitionTo(state);
};
$scope.today = new Date();
$scope.appTitle = config.app.title;
var loc = $window.location.pathname;
var url = $window.location.origin;
var modalInfo = {value: null, dismissed: true, resendHash: []};
var modalInstance;
var controller;
var openModal = function (template, controller, modalInfo) {
modalInstance = $modal.open({
windowTemplateUrl: 'src/ui-components/modals/helper/modal-window_template.html',
templateUrl: template,
controller: controller,
backdrop: 'static',
keyboard: false,
resolve: {
modalInfo: function() {
return modalInfo;
}
}
});
};
$scope.previewCloseClick = function() {
$modalInstance.close();
modalInfo.dismissed = true;
};
var ModalInstanceCtrl = function ($scope, focusService) {
modalInfo.dismissed = false;
focusService.focusTopModal();
$scope.okCancel = function() {
modalInstance.close();
modalInfo.dismissed = true;
};
};
});
});
Spec файла:
define(['SplashController'], function() {
'use strict';
describe("The Splash Controller", function() {
var controller,
scope,
localStorage;
beforeEach(function() {
module('angularTemplateApp');
focusServiceMock = jasmine.createSpyObj('focusService', ['focusMain']);
module(function ($provide) {
$provide.value('focusService', focusServiceMock);
$provide.value('authenticationService', authServiceMock);
});
inject(function ($controller, $rootScope, $localStorage) {
localStorageMock = jasmine.createSpyObj('$localStorage', ['openModal']);
scope = $rootScope.$new();
localStorage = $localStorage;
controller = $controller('SplashController', {
$scope: scope,
$localStorage: localStorage
});
});
});
it("when the login button is clicked", function() {
expect(controller).toBeDefined();
});
});
});
Update 1: Интересно, что если я закомментировать мой это блок, тест выполняется без ошибок.
не работает для меня, я получаю: Не удалось создать экземпляр module ngStorage из-за: , но я не использую ngStorage в самом файле js. – Snorlax