@@ -28,24 +28,8 @@ import {
28
28
29
29
const harness = createHarness ( [ compareId , compareWidgetId , compareAria , compareAriaControls ] ) ;
30
30
31
- const _helperText = 'This input is valid' ;
32
-
33
- const _validity = { valid : false , message : 'This input is invalid' } ;
34
-
35
- function _getValid ( valid : { valid ?: boolean ; message ?: string ; } | boolean | undefined ) : { valid : boolean | undefined ; message : string | undefined } {
36
- if ( valid === undefined ) {
37
- return { valid : undefined , message : undefined } ;
38
- }
39
-
40
- if ( typeof valid === 'boolean' ) {
41
- return { valid, message : undefined } ;
42
- }
43
-
44
- return {
45
- valid : valid . valid ,
46
- message : valid . message
47
- } ;
48
- }
31
+ const helperText = 'This is helpertext' ;
32
+ const invalidMessage = 'This input is invalid' ;
49
33
50
34
const testOptions : any [ ] = [
51
35
{
@@ -192,11 +176,11 @@ const getExpectedVdom = function(
192
176
label = false ,
193
177
states : States = { } ,
194
178
focused = false ,
195
- validity ?: { valid : boolean | undefined , message : string | undefined } | boolean | undefined
179
+ validity : { valid : boolean | undefined , message : string | undefined } = { valid : undefined , message : undefined } ,
180
+ helperText ?: string
196
181
) {
197
- const valid = _getValid ( validity ) ;
198
182
const menuVdom = getExpectedMenu ( useTestProperties , open ) ;
199
- const controlsVdom = getExpectedControls ( useTestProperties , label , states , valid ) ;
183
+ const controlsVdom = getExpectedControls ( useTestProperties , label , states , validity , helperText ) ;
200
184
const { disabled, readOnly, required } = states ;
201
185
202
186
return v ( 'div' , {
@@ -208,8 +192,8 @@ const getExpectedVdom = function(
208
192
open ? css . open : null ,
209
193
useTestProperties ? css . clearable : null ,
210
194
focused ? css . focused : null ,
211
- valid . valid === false ? css . invalid : null ,
212
- valid . valid === true ? css . valid : null
195
+ validity . valid === false ? css . invalid : null ,
196
+ validity . valid === true ? css . valid : null
213
197
] ,
214
198
key : 'root' ,
215
199
role : 'combobox'
@@ -221,7 +205,7 @@ const getExpectedVdom = function(
221
205
disabled,
222
206
focused,
223
207
hidden : undefined ,
224
- invalid : ! valid . valid ,
208
+ invalid : ! validity . valid ,
225
209
readOnly,
226
210
required,
227
211
forId : useTestProperties ? 'foo' : ''
@@ -684,6 +668,52 @@ registerSuite('ComboBox', {
684
668
h . expectPartial ( '@dropdown' , ( ) => getExpectedMenu ( true , true , { visualFocus : true } ) ) ;
685
669
h . trigger ( '@dropdown' , 'onmouseover' , stubEvent ) ;
686
670
h . expectPartial ( '@dropdown' , ( ) => getExpectedMenu ( true , true ) ) ;
671
+ } ,
672
+
673
+ 'renders helpertext' ( ) {
674
+ const h = harness ( ( ) => w ( ComboBox , {
675
+ ...testProperties ,
676
+ helperText : helperText
677
+ } ) ) ;
678
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : undefined , message : undefined } , helperText ) ) ;
679
+ } ,
680
+
681
+ 'renders validity correctly' ( ) {
682
+ let h = harness ( ( ) => w ( ComboBox , {
683
+ ...testProperties ,
684
+ valid : undefined
685
+ } ) ) ;
686
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : undefined , message : undefined } ) ) ;
687
+
688
+ h = harness ( ( ) => w ( ComboBox , {
689
+ ...testProperties ,
690
+ valid : true
691
+ } ) ) ;
692
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : true , message : undefined } ) ) ;
693
+
694
+ h = harness ( ( ) => w ( ComboBox , {
695
+ ...testProperties ,
696
+ valid : false
697
+ } ) ) ;
698
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : false , message : undefined } ) ) ;
699
+
700
+ h = harness ( ( ) => w ( ComboBox , {
701
+ ...testProperties ,
702
+ valid : { valid : true , message : invalidMessage }
703
+ } ) ) ;
704
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : true , message : invalidMessage } ) ) ;
705
+
706
+ h = harness ( ( ) => w ( ComboBox , {
707
+ ...testProperties ,
708
+ valid : { valid : false , message : invalidMessage }
709
+ } ) ) ;
710
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : false , message : invalidMessage } ) ) ;
711
+
712
+ h = harness ( ( ) => w ( ComboBox , {
713
+ ...testProperties ,
714
+ valid : { valid : false , message : undefined }
715
+ } ) ) ;
716
+ h . expect ( ( ) => getExpectedVdom ( true , false , true , { } , false , { valid : false , message : undefined } ) ) ;
687
717
}
688
718
}
689
719
} ) ;
0 commit comments