@@ -1061,23 +1061,103 @@ describe('vapor transition', () => {
1061
1061
E2E_TIMEOUT ,
1062
1062
)
1063
1063
1064
- test . todo (
1064
+ test (
1065
1065
'transition on appear with v-show' ,
1066
1066
async ( ) => {
1067
1067
const btnSelector = '.show-appear > button'
1068
1068
const containerSelector = '.show-appear > div'
1069
1069
const childSelector = `${ containerSelector } > div`
1070
+
1071
+ let calls = await page ( ) . evaluate ( ( ) => {
1072
+ return ( window as any ) . getCalls ( 'showAppear' )
1073
+ } )
1074
+ expect ( calls ) . toStrictEqual ( [ 'beforeEnter' , 'onEnter' ] )
1075
+
1076
+ // appear
1077
+ expect ( await classList ( childSelector ) ) . contains ( 'test-appear-active' )
1078
+
1079
+ await transitionFinish ( )
1080
+ expect ( await html ( containerSelector ) ) . toBe (
1081
+ '<div class="test">content</div>' ,
1082
+ )
1083
+ calls = await page ( ) . evaluate ( ( ) => {
1084
+ return ( window as any ) . getCalls ( 'showAppear' )
1085
+ } )
1086
+ expect ( calls ) . toStrictEqual ( [ 'beforeEnter' , 'onEnter' , 'afterEnter' ] )
1087
+
1088
+ // leave
1089
+ expect (
1090
+ ( await transitionStart ( btnSelector , childSelector ) ) . classNames ,
1091
+ ) . toStrictEqual ( [ 'test' , 'test-leave-from' , 'test-leave-active' ] )
1092
+ await nextFrame ( )
1093
+ expect ( await classList ( childSelector ) ) . toStrictEqual ( [
1094
+ 'test' ,
1095
+ 'test-leave-active' ,
1096
+ 'test-leave-to' ,
1097
+ ] )
1098
+ await transitionFinish ( )
1099
+ expect ( await isVisible ( childSelector ) ) . toBe ( false )
1100
+
1101
+ // enter
1102
+ expect (
1103
+ ( await transitionStart ( btnSelector , childSelector ) ) . classNames ,
1104
+ ) . toStrictEqual ( [ 'test' , 'test-enter-from' , 'test-enter-active' ] )
1105
+ await nextFrame ( )
1106
+ expect ( await classList ( childSelector ) ) . toStrictEqual ( [
1107
+ 'test' ,
1108
+ 'test-enter-active' ,
1109
+ 'test-enter-to' ,
1110
+ ] )
1111
+ await transitionFinish ( )
1112
+ expect ( await html ( containerSelector ) ) . toBe (
1113
+ '<div class="test" style="">content</div>' ,
1114
+ )
1070
1115
} ,
1071
1116
E2E_TIMEOUT ,
1072
1117
)
1073
1118
1074
- test . todo (
1119
+ test (
1075
1120
'transition events should not call onEnter with v-show false' ,
1076
- async ( ) => { } ,
1121
+ async ( ) => {
1122
+ const btnSelector = '.show-appear-not-enter > button'
1123
+ const containerSelector = '.show-appear-not-enter > div'
1124
+ const childSelector = `${ containerSelector } > div`
1125
+
1126
+ expect ( await isVisible ( childSelector ) ) . toBe ( false )
1127
+ let calls = await page ( ) . evaluate ( ( ) => {
1128
+ return ( window as any ) . getCalls ( 'notEnter' )
1129
+ } )
1130
+ expect ( calls ) . toStrictEqual ( [ ] )
1131
+
1132
+ // enter
1133
+ expect (
1134
+ ( await transitionStart ( btnSelector , childSelector ) ) . classNames ,
1135
+ ) . toStrictEqual ( [ 'test' , 'test-enter-from' , 'test-enter-active' ] )
1136
+ calls = await page ( ) . evaluate ( ( ) => {
1137
+ return ( window as any ) . getCalls ( 'notEnter' )
1138
+ } )
1139
+ expect ( calls ) . toStrictEqual ( [ 'beforeEnter' , 'onEnter' ] )
1140
+ await nextFrame ( )
1141
+ expect ( await classList ( childSelector ) ) . toStrictEqual ( [
1142
+ 'test' ,
1143
+ 'test-enter-active' ,
1144
+ 'test-enter-to' ,
1145
+ ] )
1146
+ calls = await page ( ) . evaluate ( ( ) => {
1147
+ return ( window as any ) . getCalls ( 'notEnter' )
1148
+ } )
1149
+ expect ( calls ) . not . contain ( 'afterEnter' )
1150
+ await transitionFinish ( )
1151
+ expect ( await html ( containerSelector ) ) . toBe (
1152
+ '<div class="test" style="">content</div>' ,
1153
+ )
1154
+ calls = await page ( ) . evaluate ( ( ) => {
1155
+ return ( window as any ) . getCalls ( 'notEnter' )
1156
+ } )
1157
+ expect ( calls ) . toStrictEqual ( [ 'beforeEnter' , 'onEnter' , 'afterEnter' ] )
1158
+ } ,
1077
1159
E2E_TIMEOUT ,
1078
1160
)
1079
-
1080
- test . todo ( 'transition on appear with v-show' , async ( ) => { } , E2E_TIMEOUT )
1081
1161
} )
1082
1162
1083
1163
describe ( 'explicit durations' , ( ) => {
0 commit comments