AngularJS et UI-Router: 'Erreur: transition remplacée' pendant les tests unitaires angularjs

Je tente de créer un paquet d'autorisation pour un projet à moi. Je reçois l'erreur «transition remplacée» lors de mes tests unitaires, et je ne peux pas savoir où cela se passerait.

Test de l'unité:

import angular from 'angular'; import 'angular-mocks'; import worldManagerApp from '../../src/world-manager-app'; import security from '../../src/security/security'; const {inject, module} = angular.mock; describe('LoginService', ()=> { let $httpBackend; let $rootScope; let successHandler; let errorHandler; let LoginService; const USER = {username: "TEST", password: "PASSWORD"}; beforeEach(function() { module(worldManagerApp); module(security); }); beforeEach(inject((_$httpBackend_, _LoginService_, _$rootScope_) => { $httpBackend = _$httpBackend_; $rootScope = _$rootScope_; LoginService = _LoginService_; successHandler = jasmine.createSpy('successHandler'); errorHandler = jasmine.createSpy('errorHandler'); })); it('should exist', () => { expect(LoginService).toBeDefined(); }); describe('.login()', () => { describe('when given a proper username and password', () => { it('should return the username and success', () => { $httpBackend.expectPOST('/login').respond(200, {user: USER}); LoginService.login("TEST", "PASSWORD"); $rootScope.$digest(); $httpBackend.flush(); expect($rootScope.currentUser).toEqual("TEST"); }); }); }); }); 

Un service:

 export default function LoginService($http){ 'ngInject'; let service = {}; service.login = login; function login(username, password){ $http({ url:'/login', method: 'POST', data: { username: username, password: password, }, }).then (function(response) { response.username; }).catch(function(response){ }); } return service; } 

Erreur:

 PhantomJS 1.9.8 (Windows 8 0.0.0) LoginService .login() when given a proper username and password should return the username and success FAILED Error: transition superseded at C:/Users/Manifest/AppData/Local/Temp/353229d8bf0abe298e7003bab30c0528.browserify:9387 <- node_modules/angular-mocks/angular-mocks.js:261:0 at processChecks (C:/Users/Manifest/AppData/Local/Temp/353229d8bf0abe298e7003bab30c0528.browserify:33750 <- node_modules/angular/angular.js:16674:0) at C:/Users/Manifest/AppData/Local/Temp/353229d8bf0abe298e7003bab30c0528.browserify:35048 <- node_modules/angular/angular.js:17972:0 at C:/Users/Manifest/AppData/Local/Temp/353229d8bf0abe298e7003bab30c0528.browserify:34862 <- node_modules/angular/angular.js:17786:0 at C:/Users/Manifest/AppData/Local/Temp/353229d8bf0abe298e7003bab30c0528.browserify:521 <- frontend\test\security\loginService.spec.js:42:15 

Je suppose que c'est un problème de ui-routeur, mais je ne peux pas comprendre comment cela devrait fonctionner si je le fais mal.

J'ai eu le même problème après la mise à jour angulaire de 1.5.9 à la version 1.6.1 et je l'ai résolu en mettant à jour les dépendances avec:

 npm update angular-ui-router 

L'ancienne version 0.3.1 conduit à l'erreur, avec la version mise à jour 0.3.2 mon application fonctionne bien à nouveau (maintenant avec 1.6.1 angulaire).

Lors de la mise à jour vers le 1.6.1 angulaire, c'est le message, mais la mise à niveau de l' ui-router vers 0.3.2 corrige le problème

Cela pourrait être une erreur avec votre logique de routage. Sinon, essayez d'ajouter ceci à votre app.config () ;

$qProvider.errorOnUnhandledRejections(false)