File tree 2 files changed +18
-0
lines changed
packages/react-native-web/src/modules/ImageLoader
2 files changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,16 @@ describe('ImageLoader', () => {
35
35
expect ( failureCallback ) . toHaveBeenCalledTimes ( 1 ) ;
36
36
expect ( successCallback ) . toHaveBeenCalledTimes ( 0 ) ;
37
37
} ) ;
38
+
39
+ test ( 'Failure callback is called when image fails to decode' , async ( ) => {
40
+ window . Image = NotDecodingMockImage ;
41
+ const successCallback = jest . fn ( ) ;
42
+ const failureCallback = jest . fn ( ) ;
43
+ ImageLoader . getSize ( testImage , successCallback , failureCallback ) ;
44
+ await jest . runAllTimers ( ) ;
45
+ expect ( failureCallback ) . toHaveBeenCalledTimes ( 1 ) ;
46
+ expect ( successCallback ) . toHaveBeenCalledTimes ( 0 ) ;
47
+ } ) ;
38
48
} ) ;
39
49
40
50
class MockImage {
@@ -67,3 +77,9 @@ class NotLoadingMockImage extends MockImage {
67
77
window . setTimeout ( this . onerror , 0 ) ;
68
78
}
69
79
}
80
+
81
+ class NotDecodingMockImage extends MockImage {
82
+ decode ( ) {
83
+ return Promise . reject ( ) ;
84
+ }
85
+ }
Original file line number Diff line number Diff line change @@ -95,6 +95,8 @@ const ImageLoader = {
95
95
const { naturalHeight, naturalWidth } = image ;
96
96
if ( naturalHeight && naturalWidth ) {
97
97
success ( naturalWidth , naturalHeight ) ;
98
+ } else {
99
+ errorCallback ( ) ;
98
100
}
99
101
}
100
102
}
You can’t perform that action at this time.
0 commit comments