@@ -1039,9 +1039,9 @@ describe('uploader', () => {
10391039 } ,
10401040 ) ;
10411041
1042- it ( 'should trigger beforeUpload when uploading non-accepted files in folder mode' , ( ) => {
1042+ it ( 'should trigger beforeUpload when uploading non-accepted files in native directory mode' , ( ) => {
10431043 const beforeUpload = jest . fn ( ) ;
1044- const { container } = render ( < Upload accept = ".png" folder beforeUpload = { beforeUpload } /> ) ;
1044+ const { container } = render ( < Upload accept = ".png" directory = "native" beforeUpload = { beforeUpload } /> ) ;
10451045
10461046 fireEvent . change ( container . querySelector ( 'input' ) ! , {
10471047 target : {
@@ -1050,6 +1050,47 @@ describe('uploader', () => {
10501050 } ) ;
10511051 expect ( beforeUpload ) . toHaveBeenCalledTimes ( 2 ) ;
10521052 } ) ;
1053+
1054+ it ( 'should filter files by accept when directory is true' , async ( ) => {
1055+ const onStart = jest . fn ( ) ;
1056+ const { container } = render ( < Upload action = "/test" accept = ".png" directory = { true } onStart = { onStart } /> ) ;
1057+
1058+ // Wait for component to be ready
1059+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
1060+
1061+ fireEvent . change ( container . querySelector ( 'input' ) ! , {
1062+ target : {
1063+ files : [ new File ( [ '' ] , 'bamboo.png' ) , new File ( [ '' ] , 'light.jpg' ) ] ,
1064+ } ,
1065+ } ) ;
1066+
1067+ // Wait for async operations
1068+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
1069+
1070+ // Only .png file should be uploaded when directory={true}
1071+ expect ( onStart ) . toHaveBeenCalledTimes ( 1 ) ;
1072+ expect ( onStart ) . toHaveBeenCalledWith ( expect . objectContaining ( { name : 'bamboo.png' } ) ) ;
1073+ } ) ;
1074+
1075+ it ( 'should not filter files by accept when directory is "native"' , async ( ) => {
1076+ const onStart = jest . fn ( ) ;
1077+ const { container } = render ( < Upload action = "/test" accept = ".png" directory = "native" onStart = { onStart } /> ) ;
1078+
1079+ // Wait for component to be ready
1080+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
1081+
1082+ fireEvent . change ( container . querySelector ( 'input' ) ! , {
1083+ target : {
1084+ files : [ new File ( [ '' ] , 'bamboo.png' ) , new File ( [ '' ] , 'light.jpg' ) ] ,
1085+ } ,
1086+ } ) ;
1087+
1088+ // Wait for async operations
1089+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
1090+
1091+ // Both files should be uploaded when directory="native"
1092+ expect ( onStart ) . toHaveBeenCalledTimes ( 2 ) ;
1093+ } ) ;
10531094 } ) ;
10541095
10551096 describe ( 'transform file before request' , ( ) => {
0 commit comments