@@ -149,4 +149,54 @@ describe('Swipe To Go Back', () => {
149149
150150 cy . ionPageVisible ( 'params-1' ) ;
151151 } )
152+
153+ it ( 'should keep correct view visible after swipe-back completes then abort on previous page' , ( ) => {
154+ // Navigate three levels deep: main → details → details2
155+ cy . visit ( `http://localhost:${ port } /swipe-to-go-back?${ IOS_MODE } ` ) ;
156+ cy . ionPageVisible ( 'main' ) ;
157+
158+ cy . ionNav ( 'ion-item' , 'Details' ) ;
159+ cy . ionPageVisible ( 'details' ) ;
160+ cy . ionPageHidden ( 'main' ) ;
161+
162+ cy . get ( '#go-to-details2' ) . click ( ) ;
163+ cy . wait ( 250 ) ;
164+ cy . ionPageVisible ( 'details2' ) ;
165+ cy . ionPageHidden ( 'details' ) ;
166+
167+ // Complete swipe back from details2 → details
168+ cy . ionSwipeToGoBack ( true , 'ion-router-outlet#swipe-to-go-back' ) ;
169+ cy . ionPageVisible ( 'details' ) ;
170+ cy . ionPageDoesNotExist ( 'details2' ) ;
171+
172+ // Now on details, abort a swipe back toward main
173+ // This validates that the abort doesn't hide the currently-visible page
174+ cy . ionSwipeToGoBack ( false , 'ion-router-outlet#swipe-to-go-back' ) ;
175+ cy . ionPageVisible ( 'details' ) ;
176+ cy . ionPageHidden ( 'main' ) ;
177+ } )
178+
179+ it ( 'should handle multiple consecutive swipe aborts without hiding current page' , ( ) => {
180+ cy . visit ( `http://localhost:${ port } /swipe-to-go-back?${ IOS_MODE } ` ) ;
181+ cy . ionPageVisible ( 'main' ) ;
182+
183+ cy . ionNav ( 'ion-item' , 'Details' ) ;
184+ cy . ionPageVisible ( 'details' ) ;
185+ cy . ionPageHidden ( 'main' ) ;
186+
187+ // First abort
188+ cy . ionSwipeToGoBack ( false , 'ion-router-outlet#swipe-to-go-back' ) ;
189+ cy . ionPageVisible ( 'details' ) ;
190+ cy . ionPageHidden ( 'main' ) ;
191+
192+ // Second abort
193+ cy . ionSwipeToGoBack ( false , 'ion-router-outlet#swipe-to-go-back' ) ;
194+ cy . ionPageVisible ( 'details' ) ;
195+ cy . ionPageHidden ( 'main' ) ;
196+
197+ // Third abort
198+ cy . ionSwipeToGoBack ( false , 'ion-router-outlet#swipe-to-go-back' ) ;
199+ cy . ionPageVisible ( 'details' ) ;
200+ cy . ionPageHidden ( 'main' ) ;
201+ } )
152202} ) ;
0 commit comments