Skip to content

Commit 0fb073d

Browse files
Adding empty test harness for $transition
1 parent ba3b741 commit 0fb073d

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

test/transitionSpec.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
describe('$transition:', function () {
2+
var statesTree, statesMap = {};
3+
var emptyPath;
4+
var counts;
5+
var asyncCount;
6+
7+
8+
9+
beforeEach(module('ui.router', function($stateProvider, $locationProvider) {
10+
locationProvider = $locationProvider;
11+
$locationProvider.html5Mode(false);
12+
}));
13+
14+
15+
beforeEach(module(function ($stateProvider, $provide) {
16+
counts = { _J: 0, _J2: 0, _K: 0, _L: 0, _M: 0};
17+
states = {
18+
A: { resolve: { _A: function () { return "A"; }, _A2: function() { return "A2"; }},
19+
B: { resolve: { _B: function () { return "B"; }, _B2: function() { return "B2"; }},
20+
C: { resolve: { _C: function (_A, _B) { return _A + _B + "C"; }, _C2: function() { return "C2"; }},
21+
D: { resolve: { _D: function (_D2) { return "D1" + _D2; }, _D2: function () { return "D2"; }} }
22+
}
23+
},
24+
E: { resolve: { _E: function() { return "E"; } },
25+
F: { resolve: { _E: function() { return "_E"; }, _F: function(_E) { return _E + "F"; }} }
26+
},
27+
G: { resolve: { _G: function() { return "G"; } },
28+
H: { resolve: { _G: function(_G) { return _G + "_G"; }, _H: function(_G) { return _G + "H"; } } }
29+
},
30+
I: { resolve: { _I: function(_I) { return "I"; } } }
31+
},
32+
J: { resolve: { _J: function() { counts['_J']++; return "J"; }, _J2: function(_J) { counts['_J2']++; return _J + "J2"; } },
33+
K: { resolve: { _K: function(_J2) { counts['_K']++; return _J2 + "K"; }},
34+
L: { resolve: { _L: function(_K) { counts['_L']++; return _K + "L"; }},
35+
M: { resolve: { _M: function(_L) { counts['_M']++; return _L + "M"; }} }
36+
}
37+
},
38+
N: {
39+
resolve: { _N: function(_J) { return _J + "N"; }, _N2: function(_J) { return _J + "N2"; }, _N3: function(_J) { return _J + "N3"; } },
40+
resolvePolicy: { _N: "eager", _N2: "lazy", _N3: "jit" }
41+
}
42+
},
43+
O: { resolve: { _O: function(_O2) { return _O2 + "O"; }, _O2: function(_O) { return _O + "O2"; } }
44+
}
45+
};
46+
47+
var stateProps = ["resolve", "resolvePolicy"];
48+
statesTree = loadStates({}, states, '');
49+
50+
function loadStates(parent, state, name) {
51+
var thisState = pick.apply(null, [state].concat(stateProps));
52+
var substates = omit.apply(null, [state].concat(stateProps));
53+
54+
thisState.name = name;
55+
// if (parent && parent.name) {
56+
// thisState.name = parent.name + "." + name;
57+
// }
58+
thisState.parent = parent;
59+
thisState.data = { children: [] };
60+
61+
angular.forEach(substates, function (value, key) {
62+
thisState.data.children.push(loadStates(thisState, value, key));
63+
});
64+
statesMap[name] = thisState;
65+
return thisState;
66+
}
67+
68+
angular.forEach(statesMap, function(state, name) {
69+
$stateProvider.state(state);
70+
});
71+
72+
// console.log(map(makePath([ "A", "B", "C" ]), function(s) { return s.name; }));
73+
}));
74+
75+
function makePath(names) {
76+
return new Path(map(names, function(name) { return statesMap[name]; }));
77+
}
78+
79+
describe('Transition().runAsync', function () {
80+
it('should resolve all resolves in a PathElement', inject(function ($q, $state) {
81+
$state.go("B");
82+
$q.flush();
83+
}));
84+
});
85+
});

0 commit comments

Comments
 (0)