@@ -905,7 +905,54 @@ describe('vapor transition', () => {
905905
906906 describe . todo ( 'transition with KeepAlive' , ( ) => { } )
907907 describe . todo ( 'transition with Suspense' , ( ) => { } )
908- describe . todo ( 'transition with Teleport' , ( ) => { } )
908+
909+ describe ( 'transition with Teleport' , ( ) => {
910+ test (
911+ 'apply transition to teleport child' ,
912+ async ( ) => {
913+ const btnSelector = '.with-teleport > button'
914+ const containerSelector = '.with-teleport > .container'
915+ const targetSelector = `.with-teleport > .target`
916+
917+ await transitionFinish ( )
918+ expect ( await html ( containerSelector ) ) . toBe ( '' )
919+ expect ( await html ( targetSelector ) ) . toBe ( '' )
920+
921+ // enter
922+ expect (
923+ ( await transitionStart ( btnSelector , `${ targetSelector } div` ) )
924+ . classNames ,
925+ ) . toStrictEqual ( [ 'test' , 'v-enter-from' , 'v-enter-active' ] )
926+ await nextFrame ( )
927+ expect ( await classList ( `${ targetSelector } div` ) ) . toStrictEqual ( [
928+ 'test' ,
929+ 'v-enter-active' ,
930+ 'v-enter-to' ,
931+ ] )
932+ await transitionFinish ( )
933+ expect ( await html ( targetSelector ) ) . toBe (
934+ '<div class="test">vapor compB</div>' ,
935+ )
936+ expect ( await html ( containerSelector ) ) . toBe ( '' )
937+
938+ // leave
939+ expect (
940+ ( await transitionStart ( btnSelector , `${ targetSelector } div` ) )
941+ . classNames ,
942+ ) . toStrictEqual ( [ 'test' , 'v-leave-from' , 'v-leave-active' ] )
943+ await nextFrame ( )
944+ expect ( await classList ( `${ targetSelector } div` ) ) . toStrictEqual ( [
945+ 'test' ,
946+ 'v-leave-active' ,
947+ 'v-leave-to' ,
948+ ] )
949+ await transitionFinish ( )
950+ expect ( await html ( targetSelector ) ) . toBe ( '' )
951+ expect ( await html ( containerSelector ) ) . toBe ( '' )
952+ } ,
953+ E2E_TIMEOUT ,
954+ )
955+ } )
909956
910957 describe ( 'transition with v-show' , ( ) => {
911958 test (
0 commit comments