@@ -65,6 +65,9 @@ let uploadsOne: AdminUrlUtil
65
65
let uploadsTwo : AdminUrlUtil
66
66
let customUploadFieldURL : AdminUrlUtil
67
67
let hideFileInputOnCreateURL : AdminUrlUtil
68
+ let consoleErrorsFromPage : string [ ] = [ ]
69
+ let collectErrorsFromPage : ( ) => boolean
70
+ let stopCollectingErrorsFromPage : ( ) => boolean
68
71
69
72
describe ( 'Uploads' , ( ) => {
70
73
let page : Page
@@ -99,7 +102,14 @@ describe('Uploads', () => {
99
102
const context = await browser . newContext ( )
100
103
page = await context . newPage ( )
101
104
102
- initPageConsoleErrorCatch ( page , { ignoreCORS : true } )
105
+ const { consoleErrors, collectErrors, stopCollectingErrors } = initPageConsoleErrorCatch ( page , {
106
+ ignoreCORS : true ,
107
+ } )
108
+
109
+ consoleErrorsFromPage = consoleErrors
110
+ collectErrorsFromPage = collectErrors
111
+ stopCollectingErrorsFromPage = stopCollectingErrors
112
+
103
113
await ensureCompilationIsDone ( { page, serverURL } )
104
114
} )
105
115
@@ -744,6 +754,55 @@ describe('Uploads', () => {
744
754
await saveDocAndAssert ( page )
745
755
} )
746
756
757
+ test ( 'should bulk upload non-image files without page errors' , async ( ) => {
758
+ // Enable collection ONLY for this test
759
+ collectErrorsFromPage ( )
760
+
761
+ // Navigate to the upload creation page
762
+ await page . goto ( uploadsOne . create )
763
+ await page . waitForURL ( uploadsOne . create )
764
+
765
+ // Upload single file
766
+ await page . setInputFiles (
767
+ '.file-field input[type="file"]' ,
768
+ path . resolve ( dirname , './image.png' ) ,
769
+ )
770
+ const filename = page . locator ( '.file-field__filename' )
771
+ await expect ( filename ) . toHaveValue ( 'image.png' )
772
+
773
+ const bulkUploadButton = page . locator ( '#field-hasManyUpload button' , {
774
+ hasText : exactText ( 'Create New' ) ,
775
+ } )
776
+ await bulkUploadButton . click ( )
777
+
778
+ const bulkUploadModal = page . locator ( '#bulk-upload-drawer-slug-1' )
779
+ await expect ( bulkUploadModal ) . toBeVisible ( )
780
+
781
+ await page . setInputFiles ( '#bulk-upload-drawer-slug-1 .dropzone input[type="file"]' , [
782
+ path . resolve ( dirname , './test-pdf.pdf' ) ,
783
+ ] )
784
+
785
+ await page
786
+ . locator ( '.bulk-upload--file-manager .render-fields #field-prefix' )
787
+ . fill ( 'prefix-one' )
788
+ const saveButton = page . locator ( '.bulk-upload--actions-bar__saveButtons button' )
789
+ await saveButton . click ( )
790
+
791
+ await page . waitForSelector ( '#field-hasManyUpload .upload--has-many__dragItem' )
792
+ const itemCount = await page
793
+ . locator ( '#field-hasManyUpload .upload--has-many__dragItem' )
794
+ . count ( )
795
+ expect ( itemCount ) . toEqual ( 1 )
796
+
797
+ await saveDocAndAssert ( page )
798
+
799
+ // Assert no console errors occurred for this test only
800
+ expect ( consoleErrorsFromPage ) . toEqual ( [ ] )
801
+
802
+ // Reset global behavior for other tests
803
+ stopCollectingErrorsFromPage ( )
804
+ } )
805
+
747
806
test ( 'should apply field value to all bulk upload files after edit many' , async ( ) => {
748
807
// Navigate to the upload creation page
749
808
await page . goto ( uploadsOne . create )
0 commit comments