@@ -167,56 +167,62 @@ if (!isIE9) {
167167 } )
168168
169169 it ( 'transition with JavaScript hooks' , done => {
170+ const onLeaveSpy = jasmine . createSpy ( 'onLeave' )
171+ const onEnterSpy = jasmine . createSpy ( 'onEnter' )
170172 const beforeLeaveSpy = jasmine . createSpy ( 'beforeLeave' )
171173 const beforeEnterSpy = jasmine . createSpy ( 'beforeEnter' )
172- const hooks = {
173- beforeLeave : el => {
174- expect ( el ) . toBe ( vm . $el . children [ 0 ] )
175- expect ( el . className ) . toBe ( 'test' )
176- beforeLeaveSpy ( )
177- } ,
178- onLeave : jasmine . createSpy ( 'leave' ) ,
179- afterLeave : jasmine . createSpy ( 'afterLeave' ) ,
180- beforeEnter : el => {
181- expect ( vm . $el . contains ( el ) ) . toBe ( false )
182- expect ( el . className ) . toBe ( 'test' )
183- beforeEnterSpy ( )
184- } ,
185- onEnter : jasmine . createSpy ( 'enter' ) ,
186- afterEnter : jasmine . createSpy ( 'afterEnter' )
187- }
174+ const afterLeaveSpy = jasmine . createSpy ( 'afterLeave' )
175+ const afterEnterSpy = jasmine . createSpy ( 'afterEnter' )
188176
189177 const vm = new Vue ( {
190178 template : '<div><div v-if="ok" class="test" transition="test">foo</div></div>' ,
191179 data : { ok : true } ,
192180 transitions : {
193- test : hooks
181+ test : {
182+ beforeLeave : ( el , vm ) => {
183+ expect ( el ) . toBe ( vm . $el . children [ 0 ] )
184+ expect ( el . className ) . toBe ( 'test' )
185+ beforeLeaveSpy ( el , vm )
186+ } ,
187+ onLeave : ( el , vm ) => onLeaveSpy ( el , vm ) ,
188+ afterLeave : ( el , vm ) => afterLeaveSpy ( el , vm ) ,
189+ beforeEnter : ( el , vm ) => {
190+ expect ( vm . $el . contains ( el ) ) . toBe ( false )
191+ expect ( el . className ) . toBe ( 'test' )
192+ beforeEnterSpy ( el , vm )
193+ } ,
194+ onEnter : ( el , vm ) => onEnterSpy ( el , vm ) ,
195+ afterEnter : ( el , vm ) => afterEnterSpy ( el , vm )
196+ }
194197 }
195198 } ) . $mount ( el )
196199
197200 // should not apply transition on initial render by default
198201 expect ( vm . $el . innerHTML ) . toBe ( '<div class="test">foo</div>' )
202+
203+ let _el = vm . $el . children [ 0 ]
199204 vm . ok = false
200205 waitForUpdate ( ( ) => {
201- expect ( beforeLeaveSpy ) . toHaveBeenCalled ( )
202- expect ( hooks . onLeave ) . toHaveBeenCalled ( )
206+ expect ( beforeLeaveSpy ) . toHaveBeenCalledWith ( _el , vm )
207+ expect ( onLeaveSpy ) . toHaveBeenCalledWith ( _el , vm )
203208 expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-leave test-leave-active' )
204209 } ) . thenWaitFor ( nextFrame ) . then ( ( ) => {
205- expect ( hooks . afterLeave ) . not . toHaveBeenCalled ( )
210+ expect ( afterLeaveSpy ) . not . toHaveBeenCalled ( )
206211 expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-leave-active' )
207212 } ) . thenWaitFor ( duration + 10 ) . then ( ( ) => {
208- expect ( hooks . afterLeave ) . toHaveBeenCalled ( )
213+ expect ( afterLeaveSpy ) . toHaveBeenCalledWith ( _el , vm )
209214 expect ( vm . $el . children . length ) . toBe ( 0 )
210215 vm . ok = true
211216 } ) . then ( ( ) => {
212- expect ( beforeEnterSpy ) . toHaveBeenCalled ( )
213- expect ( hooks . onEnter ) . toHaveBeenCalled ( )
217+ _el = vm . $el . children [ 0 ]
218+ expect ( beforeEnterSpy ) . toHaveBeenCalledWith ( _el , vm )
219+ expect ( onEnterSpy ) . toHaveBeenCalledWith ( _el , vm )
214220 expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-enter test-enter-active' )
215221 } ) . thenWaitFor ( nextFrame ) . then ( ( ) => {
216- expect ( hooks . afterEnter ) . not . toHaveBeenCalled ( )
222+ expect ( afterEnterSpy ) . not . toHaveBeenCalled ( )
217223 expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-enter-active' )
218224 } ) . thenWaitFor ( duration + 10 ) . then ( ( ) => {
219- expect ( hooks . afterEnter ) . toHaveBeenCalled ( )
225+ expect ( afterEnterSpy ) . toHaveBeenCalledWith ( _el , vm )
220226 expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test' )
221227 } ) . then ( done )
222228 } )
@@ -228,10 +234,10 @@ if (!isIE9) {
228234 data : { ok : true } ,
229235 transitions : {
230236 test : {
231- onEnter : ( el , cb ) => {
237+ onEnter : ( el , vm , cb ) => {
232238 next = cb
233239 } ,
234- onLeave : ( el , cb ) => {
240+ onLeave : ( el , vm , cb ) => {
235241 next = cb
236242 }
237243 }
0 commit comments