@@ -231,3 +231,51 @@ describe('Checkbox, Radio & Switch components ', () => {
231231 expect ( screen . queryByTestId ( SWITCH_LABEL ) ) . not . toBeOnTheScreen ( ) ;
232232 } ) ;
233233} ) ;
234+
235+ it ( '<Checkbox /> renders as checked when checked prop is true' , ( ) => {
236+ const mockOnChange = jest . fn ( ( checked ) => checked ) ;
237+ render (
238+ < Checkbox
239+ testID = "checkbox"
240+ onChange = { mockOnChange }
241+ checked = { true }
242+ accessibilityLabel = "agree"
243+ accessibilityHint = "toggle Agree"
244+ />
245+ ) ;
246+ expect ( screen . getByTestId ( 'checkbox' ) ) . toBeChecked ( ) ;
247+ fireEvent . press ( screen . getByTestId ( 'checkbox' ) ) ;
248+ expect ( mockOnChange ) . toHaveBeenCalledWith ( false ) ; // Checkbox should toggle to unchecked
249+ } ) ;
250+
251+ it ( '<Radio /> renders as checked when checked prop is true' , ( ) => {
252+ const mockOnChange = jest . fn ( ( checked ) => checked ) ;
253+ render (
254+ < Radio
255+ testID = "radio"
256+ onChange = { mockOnChange }
257+ checked = { true }
258+ accessibilityLabel = "agree"
259+ accessibilityHint = "toggle Agree"
260+ />
261+ ) ;
262+ expect ( screen . getByTestId ( 'radio' ) ) . toBeChecked ( ) ;
263+ fireEvent . press ( screen . getByTestId ( 'radio' ) ) ;
264+ expect ( mockOnChange ) . toHaveBeenCalledWith ( false ) ; // Radio should toggle to unchecked
265+ } ) ;
266+
267+ it ( '<Switch /> renders as checked when checked prop is true' , ( ) => {
268+ const mockOnChange = jest . fn ( ( checked ) => checked ) ;
269+ render (
270+ < Switch
271+ testID = "switch"
272+ onChange = { mockOnChange }
273+ checked = { true }
274+ accessibilityLabel = "agree"
275+ accessibilityHint = "toggle Agree"
276+ />
277+ ) ;
278+ expect ( screen . getByTestId ( 'switch' ) . props . accessibilityState . checked ) . toBe ( true ) ;
279+ fireEvent . press ( screen . getByTestId ( 'switch' ) ) ;
280+ expect ( mockOnChange ) . toHaveBeenCalledWith ( false ) ; // Switch should toggle to unchecked
281+ } ) ;
0 commit comments