@@ -220,18 +220,15 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
220220
221221 test . describe ( title ( 'input-otp: paste functionality' ) , ( ) => {
222222 test ( 'should paste text into the first and second input box when pasting 2 digits' , async ( { page } ) => {
223- await page . setContent (
224- `<ion-input-otp>Description</ion-input-otp>` ,
225- config
226- ) ;
223+ await page . setContent ( `<ion-input-otp>Description</ion-input-otp>` , config ) ;
227224
228225 const firstInput = page . locator ( 'ion-input-otp input' ) . first ( ) ;
229226 await firstInput . focus ( ) ;
230227 await firstInput . evaluate ( ( input , value ) => {
231228 const event = new ClipboardEvent ( 'paste' , {
232229 bubbles : true ,
233230 cancelable : true ,
234- clipboardData : new DataTransfer ( )
231+ clipboardData : new DataTransfer ( ) ,
235232 } ) ;
236233 if ( event . clipboardData ) {
237234 event . clipboardData . setData ( 'text' , value ) ;
@@ -244,21 +241,21 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
244241 await expect ( inputBoxes . nth ( 1 ) ) . toHaveValue ( '2' ) ;
245242 await expect ( inputBoxes . nth ( 2 ) ) . toHaveValue ( '' ) ;
246243 await expect ( inputBoxes . nth ( 3 ) ) . toHaveValue ( '' ) ;
244+
245+ // Focus should be on the 3rd input box
246+ await expect ( inputBoxes . nth ( 2 ) ) . toBeFocused ( ) ;
247247 } ) ;
248248
249249 test ( 'should paste text into all input boxes when pasting 4 digits' , async ( { page } ) => {
250- await page . setContent (
251- `<ion-input-otp>Description</ion-input-otp>` ,
252- config
253- ) ;
250+ await page . setContent ( `<ion-input-otp>Description</ion-input-otp>` , config ) ;
254251
255252 const firstInput = page . locator ( 'ion-input-otp input' ) . first ( ) ;
256253 await firstInput . focus ( ) ;
257254 await firstInput . evaluate ( ( input , value ) => {
258255 const event = new ClipboardEvent ( 'paste' , {
259256 bubbles : true ,
260257 cancelable : true ,
261- clipboardData : new DataTransfer ( )
258+ clipboardData : new DataTransfer ( ) ,
262259 } ) ;
263260 if ( event . clipboardData ) {
264261 event . clipboardData . setData ( 'text' , value ) ;
@@ -271,21 +268,23 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
271268 await expect ( inputBoxes . nth ( 1 ) ) . toHaveValue ( '2' ) ;
272269 await expect ( inputBoxes . nth ( 2 ) ) . toHaveValue ( '3' ) ;
273270 await expect ( inputBoxes . nth ( 3 ) ) . toHaveValue ( '4' ) ;
271+
272+ // Focus should be on the 4th input box
273+ await expect ( inputBoxes . nth ( 3 ) ) . toBeFocused ( ) ;
274274 } ) ;
275275
276- test ( 'should paste text into the first and second input box when pasting 2 digits in the 3rd box' , async ( { page } ) => {
277- await page . setContent (
278- `<ion-input-otp>Description</ion-input-otp>` ,
279- config
280- ) ;
276+ test ( 'should paste text into the first and second input box when pasting 2 digits in the 3rd box' , async ( {
277+ page,
278+ } ) => {
279+ await page . setContent ( `<ion-input-otp>Description</ion-input-otp>` , config ) ;
281280
282281 const thirdInput = page . locator ( 'ion-input-otp input' ) . nth ( 2 ) ;
283282 await thirdInput . focus ( ) ;
284283 await thirdInput . evaluate ( ( input , value ) => {
285284 const event = new ClipboardEvent ( 'paste' , {
286285 bubbles : true ,
287286 cancelable : true ,
288- clipboardData : new DataTransfer ( )
287+ clipboardData : new DataTransfer ( ) ,
289288 } ) ;
290289 if ( event . clipboardData ) {
291290 event . clipboardData . setData ( 'text' , value ) ;
@@ -300,11 +299,10 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
300299 await expect ( inputBoxes . nth ( 3 ) ) . toHaveValue ( '' ) ;
301300 } ) ;
302301
303- test ( 'should paste text into the last two input boxes when pasting 2 digits after typing 2 digits' , async ( { page } ) => {
304- await page . setContent (
305- `<ion-input-otp>Description</ion-input-otp>` ,
306- config
307- ) ;
302+ test ( 'should paste text into the last two input boxes when pasting 2 digits after typing 2 digits' , async ( {
303+ page,
304+ } ) => {
305+ await page . setContent ( `<ion-input-otp>Description</ion-input-otp>` , config ) ;
308306
309307 const firstInput = page . locator ( 'ion-input-otp input' ) . first ( ) ;
310308 await firstInput . focus ( ) ;
@@ -315,7 +313,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
315313 const event = new ClipboardEvent ( 'paste' , {
316314 bubbles : true ,
317315 cancelable : true ,
318- clipboardData : new DataTransfer ( )
316+ clipboardData : new DataTransfer ( ) ,
319317 } ) ;
320318 if ( event . clipboardData ) {
321319 event . clipboardData . setData ( 'text' , value ) ;
@@ -331,10 +329,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
331329 } ) ;
332330
333331 test ( 'should paste text into all input boxes when pasting 4 digits after typing 4 digits' , async ( { page } ) => {
334- await page . setContent (
335- `<ion-input-otp>Description</ion-input-otp>` ,
336- config
337- ) ;
332+ await page . setContent ( `<ion-input-otp>Description</ion-input-otp>` , config ) ;
338333
339334 const firstInput = page . locator ( 'ion-input-otp input' ) . first ( ) ;
340335 await firstInput . focus ( ) ;
@@ -345,7 +340,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
345340 const event = new ClipboardEvent ( 'paste' , {
346341 bubbles : true ,
347342 cancelable : true ,
348- clipboardData : new DataTransfer ( )
343+ clipboardData : new DataTransfer ( ) ,
349344 } ) ;
350345 if ( event . clipboardData ) {
351346 event . clipboardData . setData ( 'text' , value ) ;
0 commit comments