I'm attempting to create an authorization package for a project of mine. I'm getting the error 'transition superseded' during my unit tests, and I can't find out where that would actually be.
我正在尝试为我的项目创建授权包。我在单元测试期间得到错误'转换被取代',我无法找到实际上的位置。
Unit test:
单元测试:
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;
}
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
I assume it's a ui-Router problem, but I can't figure out how it should work if I am doing it wrong.
我认为这是一个ui-Router问题,但如果我做错了,我无法弄清楚它应该如何工作。
3 个解决方案
#1
30
I had the same issue after update angular from 1.5.9 to version 1.6.1 and could solved it by update the dependencies with:
更新角度从1.5.9到版本1.6.1之后我遇到了同样的问题,可以通过更新依赖关系来解决它:
npm update angular-ui-router
The old version 0.3.1 leads to the error, with the updated version 0.3.2 my app works fine again (now with angular 1.6.1).
旧版本0.3.1导致错误,更新版本0.3.2我的应用程序再次正常工作(现在角度为1.6.1)。
#2
23
When updating to angular 1.6.1 that's the message, but upgrading the ui-router
to 0.3.2 fix the problem
当更新到角1.6.1这是消息,但升级ui路由器到0.3.2修复问题
#3
6
This could be an error with your routing logic. If not that, then try adding this to your app.config();
这可能是您的路由逻辑错误。如果没有,请尝试将此添加到您的app.config();
$qProvider.errorOnUnhandledRejections(false)
$ qProvider.errorOnUnhandledRejections(假)
#1
30
I had the same issue after update angular from 1.5.9 to version 1.6.1 and could solved it by update the dependencies with:
更新角度从1.5.9到版本1.6.1之后我遇到了同样的问题,可以通过更新依赖关系来解决它:
npm update angular-ui-router
The old version 0.3.1 leads to the error, with the updated version 0.3.2 my app works fine again (now with angular 1.6.1).
旧版本0.3.1导致错误,更新版本0.3.2我的应用程序再次正常工作(现在角度为1.6.1)。
#2
23
When updating to angular 1.6.1 that's the message, but upgrading the ui-router
to 0.3.2 fix the problem
当更新到角1.6.1这是消息,但升级ui路由器到0.3.2修复问题
#3
6
This could be an error with your routing logic. If not that, then try adding this to your app.config();
这可能是您的路由逻辑错误。如果没有,请尝试将此添加到您的app.config();
$qProvider.errorOnUnhandledRejections(false)
$ qProvider.errorOnUnhandledRejections(假)