File tree 2 files changed +46
-0
lines changed
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 {
46
46
this . confirmTransition (
47
47
route ,
48
48
( ) => {
49
+ const prev = this . current
49
50
this . index = targetIndex
50
51
this . updateRoute ( route )
52
+ this . router . afterHooks . forEach ( hook => {
53
+ hook && hook ( route , prev )
54
+ } )
51
55
} ,
52
56
err => {
53
57
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