@@ -452,38 +452,46 @@ describe('admin3', () => {
452
452
expect ( page . url ( ) ) . toContain ( postsUrl . list )
453
453
} )
454
454
455
- test ( 'should bulk delete' , async ( ) => {
456
- async function selectAndDeleteAll ( ) {
457
- await page . goto ( postsUrl . list )
458
- await page . locator ( 'input#select-all' ) . check ( )
459
- await page . locator ( '.delete-documents__toggle' ) . click ( )
460
- await page . locator ( '#confirm-delete' ) . click ( )
461
- }
462
-
463
- // First, delete all posts created by the seed
455
+ test ( 'should bulk delete all on page' , async ( ) => {
464
456
await deleteAllPosts ( )
465
- await createPost ( )
466
- await createPost ( )
467
- await createPost ( )
468
-
457
+ await Promise . all ( [ createPost ( ) , createPost ( ) , createPost ( ) ] )
469
458
await page . goto ( postsUrl . list )
470
- await selectAndDeleteAll ( )
459
+ await page . locator ( 'input#select-all' ) . check ( )
460
+ await page . locator ( '.delete-documents__toggle' ) . click ( )
461
+ await page . locator ( '#confirm-delete' ) . click ( )
462
+
471
463
await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toHaveText (
472
464
'Deleted 3 Posts successfully.' ,
473
465
)
466
+
474
467
await expect ( page . locator ( '.collection-list__no-results' ) ) . toBeVisible ( )
475
468
} )
476
469
470
+ test ( 'should bulk delete with filters and across pages' , async ( ) => {
471
+ await deleteAllPosts ( )
472
+ await Promise . all ( [ createPost ( { title : 'Post 1' } ) , createPost ( { title : 'Post 2' } ) ] )
473
+ await page . goto ( postsUrl . list )
474
+ await page . locator ( '#search-filter-input' ) . fill ( 'Post 1' )
475
+ await expect ( page . locator ( '.table table > tbody > tr' ) ) . toHaveCount ( 1 )
476
+ await page . locator ( 'input#select-all' ) . check ( )
477
+ await page . locator ( 'button.list-selection__button' ) . click ( )
478
+ await page . locator ( '.delete-documents__toggle' ) . click ( )
479
+ await page . locator ( '#confirm-delete' ) . click ( )
480
+
481
+ await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toHaveText (
482
+ 'Deleted 1 Post successfully.' ,
483
+ )
484
+
485
+ await expect ( page . locator ( '.table table > tbody > tr' ) ) . toHaveCount ( 1 )
486
+ } )
487
+
477
488
test ( 'should bulk update' , async ( ) => {
478
489
// First, delete all posts created by the seed
479
490
await deleteAllPosts ( )
480
- await createPost ( )
481
- await createPost ( )
482
- await createPost ( )
483
-
484
- const bulkTitle = 'Bulk update title'
491
+ const post1Title = 'Post'
492
+ const updatedPostTitle = `${ post1Title } (Updated)`
493
+ await Promise . all ( [ createPost ( { title : post1Title } ) , createPost ( ) , createPost ( ) ] )
485
494
await page . goto ( postsUrl . list )
486
-
487
495
await page . locator ( 'input#select-all' ) . check ( )
488
496
await page . locator ( '.edit-many__toggle' ) . click ( )
489
497
await page . locator ( '.field-select .rs__control' ) . click ( )
@@ -493,21 +501,52 @@ describe('admin3', () => {
493
501
} )
494
502
495
503
await expect ( titleOption ) . toBeVisible ( )
496
-
497
504
await titleOption . click ( )
498
505
const titleInput = page . locator ( '#field-title' )
499
-
500
506
await expect ( titleInput ) . toBeVisible ( )
507
+ await titleInput . fill ( updatedPostTitle )
508
+ await page . locator ( '.form-submit button[type="submit"].edit-many__publish' ) . click ( )
501
509
502
- await titleInput . fill ( bulkTitle )
510
+ await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toContainText (
511
+ 'Updated 3 Posts successfully.' ,
512
+ )
513
+
514
+ await expect ( page . locator ( '.row-1 .cell-title' ) ) . toContainText ( updatedPostTitle )
515
+ await expect ( page . locator ( '.row-2 .cell-title' ) ) . toContainText ( updatedPostTitle )
516
+ await expect ( page . locator ( '.row-3 .cell-title' ) ) . toContainText ( updatedPostTitle )
517
+ } )
518
+
519
+ test ( 'should bulk update with filters and across pages' , async ( ) => {
520
+ // First, delete all posts created by the seed
521
+ await deleteAllPosts ( )
522
+ const post1Title = 'Post 1'
523
+ await Promise . all ( [ createPost ( { title : post1Title } ) , createPost ( { title : 'Post 2' } ) ] )
524
+ const updatedPostTitle = `${ post1Title } (Updated)`
525
+ await page . goto ( postsUrl . list )
526
+ await page . locator ( '#search-filter-input' ) . fill ( 'Post 1' )
527
+ await expect ( page . locator ( '.table table > tbody > tr' ) ) . toHaveCount ( 1 )
528
+ await page . locator ( 'input#select-all' ) . check ( )
529
+ await page . locator ( 'button.list-selection__button' ) . click ( )
530
+ await page . locator ( '.edit-many__toggle' ) . click ( )
531
+ await page . locator ( '.field-select .rs__control' ) . click ( )
532
+
533
+ const titleOption = page . locator ( '.field-select .rs__option' , {
534
+ hasText : exactText ( 'Title' ) ,
535
+ } )
536
+
537
+ await expect ( titleOption ) . toBeVisible ( )
538
+ await titleOption . click ( )
539
+ const titleInput = page . locator ( '#field-title' )
540
+ await expect ( titleInput ) . toBeVisible ( )
541
+ await titleInput . fill ( updatedPostTitle )
503
542
504
543
await page . locator ( '.form-submit button[type="submit"].edit-many__publish' ) . click ( )
505
544
await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toContainText (
506
- 'Updated 3 Posts successfully.' ,
545
+ 'Updated 1 Post successfully.' ,
507
546
)
508
- await expect ( page . locator ( '.row-1 .cell-title' ) ) . toContainText ( bulkTitle )
509
- await expect ( page . locator ( '.row-2 .cell-title ' ) ) . toContainText ( bulkTitle )
510
- await expect ( page . locator ( '.row-3 .cell-title' ) ) . toContainText ( bulkTitle )
547
+
548
+ await expect ( page . locator ( '.table table > tbody > tr ' ) ) . toHaveCount ( 1 )
549
+ await expect ( page . locator ( '.row-1 .cell-title' ) ) . toContainText ( updatedPostTitle )
511
550
} )
512
551
513
552
test ( 'should save globals' , async ( ) => {
0 commit comments