Skip to content

Commit 3471c42

Browse files
test(resolve): Ensure previously fetched parent resolve is not fetched again when redirecting to a child state
Closes #2641
1 parent 70c7f07 commit 3471c42

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

test/core/resolveSpec.ts

+22-3
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ import { omit, pick, forEach, copy } from "../../src/core";
77

88
import Spy = jasmine.Spy;
99
import {services} from "../../src/common/coreservices";
10-
import {resolvablesBuilder} from "../../src/state/stateBuilder";
1110
import {tree2Array} from "../testUtils.ts";
1211
import {UIRouter} from "../../src/router";
1312

1413
///////////////////////////////////////////////
1514

16-
let router, states, statesMap: { [key:string]: State } = {};
15+
let router: UIRouter, states, statesMap: { [key:string]: State } = {};
1716
let vals, counts, expectCounts;
1817
let asyncCount;
1918

@@ -76,7 +75,7 @@ beforeEach(function () {
7675

7776
tree2Array(getStates(), false).forEach(state => router.stateRegistry.register(state));
7877
statesMap = router.stateRegistry.get()
79-
.reduce((acc, state) => ((acc[state.name] = state.$$state()), acc), {});
78+
.reduce((acc, state) => (acc[state.name] = state.$$state(), acc), statesMap);
8079
});
8180

8281
function makePath(names: string[]): PathNode[] {
@@ -347,5 +346,25 @@ describe('Resolvables system:', function () {
347346
}).then(done);
348347
});
349348
});
349+
350+
// Test for #2641
351+
it("should not re-resolve data, when redirecting to a child", (done) => {
352+
let $state = router.stateService;
353+
let $transitions = router.transitionService;
354+
$transitions.onStart({to: "J"}, ($transition$) => {
355+
var ctx = new ResolveContext($transition$.treeChanges().to);
356+
return invokeLater(function (_J) {}, ctx).then(function() {
357+
expect(counts._J).toEqualData(1);
358+
return $state.target("K");
359+
});
360+
});
361+
362+
$state.go("J").then(() => {
363+
expect($state.current.name).toBe("K");
364+
expect(counts._J).toEqualData(1);
365+
done();
366+
});
367+
});
350368
});
351369

370+

0 commit comments

Comments
 (0)