@@ -452,38 +452,46 @@ describe('admin3', () => {
452452 expect ( page . url ( ) ) . toContain ( postsUrl . list )
453453 } )
454454
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 ( ) => {
464456 await deleteAllPosts ( )
465- await createPost ( )
466- await createPost ( )
467- await createPost ( )
468-
457+ await Promise . all ( [ createPost ( ) , createPost ( ) , createPost ( ) ] )
469458 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+
471463 await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toHaveText (
472464 'Deleted 3 Posts successfully.' ,
473465 )
466+
474467 await expect ( page . locator ( '.collection-list__no-results' ) ) . toBeVisible ( )
475468 } )
476469
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+
477488 test ( 'should bulk update' , async ( ) => {
478489 // First, delete all posts created by the seed
479490 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 ( ) ] )
485494 await page . goto ( postsUrl . list )
486-
487495 await page . locator ( 'input#select-all' ) . check ( )
488496 await page . locator ( '.edit-many__toggle' ) . click ( )
489497 await page . locator ( '.field-select .rs__control' ) . click ( )
@@ -493,21 +501,52 @@ describe('admin3', () => {
493501 } )
494502
495503 await expect ( titleOption ) . toBeVisible ( )
496-
497504 await titleOption . click ( )
498505 const titleInput = page . locator ( '#field-title' )
499-
500506 await expect ( titleInput ) . toBeVisible ( )
507+ await titleInput . fill ( updatedPostTitle )
508+ await page . locator ( '.form-submit button[type="submit"].edit-many__publish' ) . click ( )
501509
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 )
503542
504543 await page . locator ( '.form-submit button[type="submit"].edit-many__publish' ) . click ( )
505544 await expect ( page . locator ( '.payload-toast-container .toast-success' ) ) . toContainText (
506- 'Updated 3 Posts successfully.' ,
545+ 'Updated 1 Post successfully.' ,
507546 )
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 )
511550 } )
512551
513552 test ( 'should save globals' , async ( ) => {
0 commit comments