@@ -7,24 +7,23 @@ describe('ImageFailureMessage', () => {
77 it ( 'does not render when no images have failed' , ( ) => {
88 const { container } = render (
99 < FailedImageProvider >
10- < ImageFailureMessage />
10+ < ImageFailureMessage imageUrls = { [ 'https://example.com/image1.jpg' ] } />
1111 </ FailedImageProvider > ,
1212 ) ;
1313
1414 expect ( container ) . toBeEmptyDOMElement ( ) ;
1515 } ) ;
1616
17- it ( 'renders default translated message when images have failed' , ( ) => {
18- // Mock the context with hasFailed: true
17+ it ( 'renders message when a specific image has failed' , ( ) => {
1918 const mockContext = {
19+ failedImages : new Set ( [ 'https://example.com/image1.jpg' ] ) ,
2020 fallbackImage : 'data:image/svg+xml,...' ,
21- hasFailed : true ,
2221 notifyFailure : vi . fn ( ) ,
2322 } ;
2423
2524 render (
2625 < FailedImageContext . Provider value = { mockContext } >
27- < ImageFailureMessage />
26+ < ImageFailureMessage imageUrls = { [ 'https://example.com/image1.jpg' ] } />
2827 </ FailedImageContext . Provider > ,
2928 ) ;
3029
@@ -33,16 +32,44 @@ describe('ImageFailureMessage', () => {
3332 expect ( screen . getByText ( / S e e c o n s o l e f o r d e t a i l s / i) ) . toBeInTheDocument ( ) ;
3433 } ) ;
3534
35+
36+ it ( 'isolates failures per window' , ( ) => {
37+ const mockContext = {
38+ failedImages : new Set ( [ 'https://example.com/manifest-a/canvas-1/image.jpg' ] ) ,
39+ fallbackImage : 'data:image/svg+xml,...' ,
40+ notifyFailure : vi . fn ( ) ,
41+ } ;
42+
43+ // Render Window A with its failed image
44+ const { container : containerA } = render (
45+ < FailedImageContext . Provider value = { mockContext } >
46+ < ImageFailureMessage imageUrls = { [ 'https://example.com/manifest-a/canvas-1/image.jpg' ] } />
47+ </ FailedImageContext . Provider > ,
48+ ) ;
49+
50+ expect ( containerA ) . not . toBeEmptyDOMElement ( ) ;
51+ expect ( screen . getByText ( / P r o b l e m l o a d i n g i m a g e / i) ) . toBeInTheDocument ( ) ;
52+
53+ // Render Window B with non-failed image
54+ const { container : containerB } = render (
55+ < FailedImageContext . Provider value = { mockContext } >
56+ < ImageFailureMessage imageUrls = { [ 'https://example.com/manifest-b/canvas-1/image.jpg' ] } />
57+ </ FailedImageContext . Provider > ,
58+ ) ;
59+
60+ expect ( containerB ) . toBeEmptyDOMElement ( ) ;
61+ } ) ;
62+
3663 it ( 'has proper accessibility attributes' , ( ) => {
3764 const mockContext = {
65+ failedImages : new Set ( [ 'https://example.com/image1.jpg' ] ) ,
3866 fallbackImage : 'data:image/svg+xml,...' ,
39- hasFailed : true ,
4067 notifyFailure : vi . fn ( ) ,
4168 } ;
4269
4370 render (
4471 < FailedImageContext . Provider value = { mockContext } >
45- < ImageFailureMessage />
72+ < ImageFailureMessage imageUrls = { [ 'https://example.com/image1.jpg' ] } />
4673 </ FailedImageContext . Provider > ,
4774 ) ;
4875
0 commit comments