Я пытаюсь написать единичный тест для моего Служба прогресса, который управляет различными состояниями потока (переходит на следующий неполный шаг, помечает шаг как полный и т. Д.).)
Я пытаюсь настроить $ stateProvider для создания набора состояний, а затем проверить работу с ним, но я не могу изменить состояние. Конечно, я хотел бы протестировать это изолированным способом, поэтому не в зависимости от существующих состояний в моем приложении.
Вот простой тест блок:
ddescribe('Progress Steps Service', function() {
var sut, $rootScope, $state;
// holds ui.router and ProgressStepsService deps
beforeEach(module('Core'));
beforeEach(inject(
function(_$rootScope_, _$state_) {
$rootScope = _$rootScope_;
$state = _$state_;
}
));
beforeEach(inject(function(ProgressStepsService) {
// var steps = [...];
// sut = ProgressStepsService;
// sut.resolve(steps);
angular.module('TestModule', []).config(function($stateProvider) {
$stateProvider
.state('root', {url: '/root', abstract: true})
.state('root.step1', {url: '/step1'})
.state('root.step2', {url: '/step2'})
.state('root.step3', {url: '/step3'});
});
$state.go('root.step1');
$rootScope.digest();
}));
it('should init from the first step', function() {
expect($state.$current.name).toBe('root.step1');
});
});
Ошибка я получаю
Error: Could not resolve 'root.step1' from state ''
Я принимаю ''
состояние по умолчанию, и по какой-то причине сконфигурированные состояния не являются судоходными. Я, вероятно, пропустил что-то очень основное.
Как настроить $stateProvider
для проверки на произвольные состояния?