javascript - unit - testing angular 7
AngularJS y UI-Router: ''Error: transiciĆ³n sustituida'' durante las pruebas unitarias de angularjs (3)
Estoy intentando crear un paquete de autorización para un proyecto mío. Recibo el error "transición superada" durante mis pruebas de unidad, y no puedo averiguar dónde sería realmente eso.
Prueba de unidad:
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");
});
});
});
});
Servicio:
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;
}
Error:
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
Supongo que es un problema de ui-Router, pero no puedo entender cómo debería funcionar si lo estoy haciendo mal.
Cuando se actualiza a angular 1.6.1, ese es el mensaje, pero actualizar el ui-router
a 0.3.2 soluciona el problema
Esto podría ser un error con su lógica de enrutamiento. Si no es así, intente agregar esto a su app.config () ;
$qProvider.errorOnUnhandledRejections(false)
Tuve el mismo problema después de la actualización angular de 1.5.9 a la versión 1.6.1 y pude resolverlo actualizando las dependencias con:
npm update angular-ui-router
La versión anterior 0.3.1 lleva al error, con la versión actualizada 0.3.2 mi aplicación funciona bien de nuevo (ahora con angular 1.6.1).