@@ -23,6 +23,8 @@ describe('useRiveFile', () => {
23
23
mocked ( RiveFile ) . mockClear ( ) ;
24
24
} ) ;
25
25
26
+
27
+
26
28
it ( 'initializes RiveFile with provided parameters' , async ( ) => {
27
29
const params = {
28
30
src : 'file-src' ,
@@ -38,7 +40,7 @@ describe('useRiveFile', () => {
38
40
it ( 'cleans up RiveFile on unmount' , async ( ) => {
39
41
const params = {
40
42
src : 'file-src' ,
41
- enableRiveAssetCDN : false
43
+ enableRiveAssetCDN : false
42
44
} ;
43
45
44
46
const { result, unmount } = renderHook ( ( ) => useRiveFile ( params ) ) ;
@@ -54,7 +56,7 @@ describe('useRiveFile', () => {
54
56
it ( 'does not reinitialize RiveFile if src has not changed' , async ( ) => {
55
57
const params = {
56
58
src : 'file-src' ,
57
- enableRiveAssetCDN : false
59
+ enableRiveAssetCDN : false
58
60
} ;
59
61
60
62
const { rerender } = renderHook ( ( ) => useRiveFile ( params ) ) ;
@@ -64,7 +66,7 @@ describe('useRiveFile', () => {
64
66
expect ( RiveFile ) . toHaveBeenCalledTimes ( 1 ) ;
65
67
} ) ;
66
68
67
- it ( 'does not reinitialize RiveFile if buffer has not changed' , async ( ) => {
69
+ it ( 'does not reinitialize RiveFile if buffer has not changed' , async ( ) => {
68
70
const params = {
69
71
buffer : new ArrayBuffer ( 10 ) ,
70
72
enableRiveAssetCDN : false
@@ -112,4 +114,29 @@ describe('useRiveFile', () => {
112
114
113
115
expect ( RiveFile ) . toHaveBeenCalledTimes ( 2 ) ;
114
116
} ) ;
117
+
118
+ it ( 'handles RiveFile initialization failure gracefully' , async ( ) => {
119
+
120
+ const consoleSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
121
+ const error = new Error ( "Initialization failed" ) ;
122
+
123
+ mocked ( RiveFile ) . mockImplementation ( ( ) => {
124
+ throw error ;
125
+ } ) ;
126
+
127
+ const params = {
128
+ src : 'file-src' ,
129
+ enableRiveAssetCDN : false ,
130
+ } ;
131
+
132
+ const { result, rerender } = renderHook ( ( ) => useRiveFile ( params ) ) ;
133
+
134
+ rerender ( ) ;
135
+
136
+ expect ( result . current . status ) . toBe ( 'failed' ) ;
137
+ expect ( result . current . riveFile ) . toBeNull ( ) ;
138
+ expect ( consoleSpy ) . toHaveBeenCalledWith ( error ) ;
139
+
140
+ consoleSpy . mockRestore ( ) ;
141
+ } ) ;
115
142
} ) ;
0 commit comments