@@ -31,6 +31,10 @@ import { UpdateRobotBanner } from '../../UpdateRobotBanner'
31
31
import { RobotOverflowMenu } from '../RobotOverflowMenu'
32
32
import { RobotStatusHeader } from '../RobotStatusHeader'
33
33
import { RobotCard } from '../RobotCard'
34
+ import {
35
+ ErrorRecoveryBanner ,
36
+ useErrorRecoveryBanner ,
37
+ } from '../../ErrorRecoveryBanner'
34
38
35
39
import type { State } from '../../../redux/types'
36
40
@@ -41,6 +45,7 @@ vi.mock('../../UpdateRobotBanner')
41
45
vi . mock ( '../../../redux/config' )
42
46
vi . mock ( '../RobotOverflowMenu' )
43
47
vi . mock ( '../RobotStatusHeader' )
48
+ vi . mock ( '../../ErrorRecoveryBanner' )
44
49
45
50
const OT2_PNG_FILE_NAME = '/app/src/assets/images/OT2-R_HERO.png'
46
51
const FLEX_PNG_FILE_NAME = '/app/src/assets/images/FLEX.png'
@@ -127,6 +132,13 @@ describe('RobotCard', () => {
127
132
when ( getRobotModelByName )
128
133
. calledWith ( MOCK_STATE , mockConnectableRobot . name )
129
134
. thenReturn ( 'OT-2' )
135
+ vi . mocked ( ErrorRecoveryBanner ) . mockReturnValue (
136
+ < div > MOCK_RECOVERY_BANNER</ div >
137
+ )
138
+ vi . mocked ( useErrorRecoveryBanner ) . mockReturnValue ( {
139
+ showRecoveryBanner : false ,
140
+ recoveryIntent : 'recovering' ,
141
+ } )
130
142
} )
131
143
132
144
it ( 'renders an OT-2 image when robot model is OT-2' , ( ) => {
@@ -161,4 +173,15 @@ describe('RobotCard', () => {
161
173
render ( props )
162
174
screen . getByText ( 'Mock RobotStatusHeader' )
163
175
} )
176
+
177
+ it ( 'renders the error recovery banner when another user is performing error recovery' , ( ) => {
178
+ vi . mocked ( useErrorRecoveryBanner ) . mockReturnValue ( {
179
+ showRecoveryBanner : true ,
180
+ recoveryIntent : 'recovering' ,
181
+ } )
182
+
183
+ render ( props )
184
+
185
+ screen . getByText ( 'MOCK_RECOVERY_BANNER' )
186
+ } )
164
187
} )
0 commit comments