@@ -11,19 +11,57 @@ test('disabled date picker', () => {
1111 expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
1212} ) ;
1313
14- test ( 'Date picker with multiple validators does not show invalid icon on valid input ' , async ( ) => {
14+ test ( 'Does not render aria-invalid input when multiple validators return empty strings ' , async ( ) => {
1515 const user = userEvent . setup ( ) ;
1616
1717 const rangeValidator = ( _date : Date ) => '' ;
18+ const rangeValidatorB = ( _date : Date ) => '' ;
19+ render ( < DatePicker value = "2020-03-17" validators = { [ rangeValidator , rangeValidatorB ] } /> ) ;
20+
21+ await user . click ( screen . getByRole ( 'textbox' ) ) ;
22+ await user . click ( document . body ) ;
23+ expect ( screen . getByRole ( 'textbox' ) ) . not . toBeInvalid ( ) ;
24+ } ) ;
1825
26+ test ( 'Does not render helper text when multiple validators return empty strings' , async ( ) => {
27+ const user = userEvent . setup ( ) ;
28+
29+ const rangeValidator = ( _date : Date ) => '' ;
1930 const rangeValidatorB = ( _date : Date ) => '' ;
31+ render ( < DatePicker value = "2020-03-17" validators = { [ rangeValidator , rangeValidatorB ] } /> ) ;
2032
33+ await user . click ( screen . getByRole ( 'textbox' ) ) ;
34+ await user . click ( document . body ) ;
35+
36+ expect ( screen . queryByText ( ': error status;' ) ) . not . toBeInTheDocument ( ) ;
37+ } ) ;
38+
39+ test ( 'Renders helper text when at least 1 validator returns a string' , async ( ) => {
40+ const user = userEvent . setup ( ) ;
41+
42+ const rangeValidator = ( _date : Date ) => 'Some error.' ;
43+ const rangeValidatorB = ( _date : Date ) => '' ;
2144 render ( < DatePicker value = "2020-03-17" validators = { [ rangeValidator , rangeValidatorB ] } /> ) ;
2245
2346 await user . click ( screen . getByRole ( 'textbox' ) ) ;
47+ await user . click ( document . body ) ;
48+
49+ expect ( screen . getByText ( 'Some error.' ) ) . toBeVisible ( ) ;
50+ expect ( screen . getByText ( ': error status;' ) ) . toBeInTheDocument ( ) ;
51+ } ) ;
2452
53+ test ( 'Renders helper text when more than 1 validator returns a string' , async ( ) => {
54+ const user = userEvent . setup ( ) ;
55+
56+ const rangeValidator = ( _date : Date ) => 'Some error.' ;
57+ const rangeValidatorB = ( _date : Date ) => 'Another error.' ;
58+ render ( < DatePicker value = "2020-03-17" validators = { [ rangeValidator , rangeValidatorB ] } /> ) ;
59+
60+ await user . click ( screen . getByRole ( 'textbox' ) ) ;
2561 await user . click ( document . body ) ;
26- expect ( screen . getByRole ( 'textbox' ) ) . not . toBeInvalid ( ) ;
62+
63+ expect ( screen . getByText ( 'Some error. Another error.' ) ) . toBeVisible ( ) ;
64+ expect ( screen . getByText ( ': error status;' ) ) . toBeInTheDocument ( ) ;
2765} ) ;
2866
2967test ( 'Error state can be cleared from outside' , async ( ) => {
0 commit comments