AngularJS et UI-Router: 'Erreur: transition dépassée' lors des tests unitaires angularjs
Je suis d'essayer de créer une autorisation pour un projet de mine. J'obtiens le message d'erreur "la transition remplacée" au cours de mes tests unitaires, et je ne peux pas savoir où ce serait effectivement.
De 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");
});
});
});
});
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 une interface de Routeur de problème, mais je ne peux pas comprendre comment il devrait fonctionner si je le fais mal.
source d'informationauteur Cooper
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème après la mise à jour angulaire de 1.5.9 à la version 1.6.1 et pourrait résolu par la mise à jour les dépendances avec:
L'ancienne version 0.3.1 conduit à l'erreur, avec la mise à jour de la version 0.3.2 mon appli fonctionne bien à nouveau (maintenant angulaire 1.6.1).
Quand mise à jour à angulaire 1.6.1 c'est le message, mais la mise à niveau de la
ui-router
à 0.3.2 résoudre le problèmeCela pourrait être une erreur avec votre logique de routage. Si pas, alors essayez d'ajouter ceci à votre app.config();
$qProvider.errorOnUnhandledRejections(false)