File tree Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -46,8 +46,12 @@ export class AbstractHistory extends History {
4646 this . confirmTransition (
4747 route ,
4848 ( ) => {
49+ const prev = this . current
4950 this . index = targetIndex
5051 this . updateRoute ( route )
52+ this . router . afterHooks . forEach ( hook => {
53+ hook && hook ( route , prev )
54+ } )
5155 } ,
5256 err => {
5357 if ( isNavigationFailure ( err , NavigationFailureType . duplicated ) ) {
Original file line number Diff line number Diff line change 1+ import Vue from 'vue'
2+ import VueRouter from '../../../src/index'
3+
4+ Vue . use ( VueRouter )
5+
6+ const delay = t => new Promise ( resolve => setTimeout ( resolve , t ) )
7+
8+ describe ( 'abstract history' , ( ) => {
9+ it ( 'run afterEach after initial navigation' , done => {
10+ const router = new VueRouter ( { mode : 'abstract' } )
11+ const afterEach = jasmine . createSpy ( 'afterEach' )
12+ const onReady = jasmine . createSpy ( 'ready' )
13+ const onError = jasmine . createSpy ( 'error' )
14+ router . afterEach ( afterEach )
15+ router . onReady ( onReady , onError )
16+
17+ router . push ( '/' ) . finally ( ( ) => {
18+ expect ( onReady ) . toHaveBeenCalled ( )
19+ expect ( onError ) . not . toHaveBeenCalled ( )
20+ expect ( afterEach ) . toHaveBeenCalled ( )
21+ done ( )
22+ } )
23+ } )
24+
25+ it ( 'run afterEach after router.go' , done => {
26+ const router = new VueRouter ( { mode : 'abstract' } )
27+ const afterEach = jasmine . createSpy ( 'afterEach' )
28+
29+ router
30+ . push ( '/' )
31+ . then ( ( ) => router . push ( '/foo' ) )
32+ . then ( ( ) => {
33+ router . afterEach ( afterEach )
34+ router . go ( - 1 )
35+ return delay ( 30 )
36+ } )
37+ . finally ( ( ) => {
38+ expect ( afterEach ) . toHaveBeenCalled ( )
39+ done ( )
40+ } )
41+ } )
42+ } )
You can’t perform that action at this time.
0 commit comments