@@ -15,7 +15,6 @@ chai.use(chaiEnzyme());
15
15
function AutocompleteComponentJSX ( extraProps ) {
16
16
return (
17
17
< Autocomplete
18
- initialValue = ''
19
18
labelText = "Choose a state from the US"
20
19
inputProps = { { name : "US state" } }
21
20
getItemValue = { ( item ) => item . name }
@@ -49,11 +48,11 @@ describe('Autocomplete acceptance tests', () => {
49
48
expect ( autocompleteWrapper . instance ( ) . refs . menu ) . to . exist ;
50
49
} ) ;
51
50
52
- it ( 'should show results when partial match is typed in ' , ( ) => {
51
+ it ( 'should show results when value is a partial match ' , ( ) => {
53
52
54
53
// Render autocomplete results upon partial input match
55
54
expect ( autocompleteWrapper . ref ( 'menu' ) . children ( ) ) . to . have . length ( 50 ) ;
56
- autocompleteInputWrapper . simulate ( 'change' , { target : { value : 'Ar' } } ) ;
55
+ autocompleteWrapper . setProps ( { value : 'Ar' } ) ;
57
56
expect ( autocompleteWrapper . ref ( 'menu' ) . children ( ) ) . to . have . length ( 6 ) ;
58
57
59
58
} ) ;
@@ -173,32 +172,34 @@ describe('Autocomplete kewDown->Enter event handlers', () => {
173
172
} ) ;
174
173
175
174
it ( 'should close menu if input has focus but no item has been selected and then the Enter key is hit' , ( ) => {
175
+ let value = '' ;
176
176
autocompleteWrapper . setState ( { 'isOpen' : true } ) ;
177
177
autocompleteInputWrapper . simulate ( 'focus' ) ;
178
- autocompleteInputWrapper . simulate ( 'change' , { target : { value : '' } } ) ;
178
+ autocompleteWrapper . setProps ( { value , onSelect ( v ) { value = v ; } } ) ;
179
179
180
180
// simulate keyUp of backspace, triggering autocomplete suggestion on an empty string, which should result in nothing highlighted
181
181
autocompleteInputWrapper . simulate ( 'keyUp' , { key : 'Backspace' , keyCode : 8 , which : 8 } ) ;
182
182
expect ( autocompleteWrapper . state ( 'highlightedIndex' ) ) . to . be . null ;
183
183
184
184
autocompleteInputWrapper . simulate ( 'keyDown' , { key : 'Enter' , keyCode : 13 , which : 13 } ) ;
185
185
186
- expect ( autocompleteWrapper . state ( ' value' ) ) . to . equal ( '' ) ;
186
+ expect ( value ) . to . equal ( '' ) ;
187
187
expect ( autocompleteWrapper . state ( 'isOpen' ) ) . to . be . false ;
188
188
189
189
} ) ;
190
190
191
- it ( 'should update input value from selected menu item and close the menu' , ( ) => {
191
+ it ( 'should invoke `onSelect` with the selected menu item and close the menu' , ( ) => {
192
+ let value = 'Ar' ;
192
193
autocompleteWrapper . setState ( { 'isOpen' : true } ) ;
193
194
autocompleteInputWrapper . simulate ( 'focus' ) ;
194
- autocompleteInputWrapper . simulate ( 'change' , { target : { value : 'Ar' } } ) ;
195
+ autocompleteWrapper . setProps ( { value , onSelect ( v ) { value = v ; } } ) ;
195
196
196
197
// simulate keyUp of last key, triggering autocomplete suggestion + selection of the suggestion in the menu
197
198
autocompleteInputWrapper . simulate ( 'keyUp' , { key : 'r' , keyCode : 82 , which : 82 } ) ;
198
199
199
200
// Hit enter, updating state.value with the selected Autocomplete suggestion
200
201
autocompleteInputWrapper . simulate ( 'keyDown' , { key : 'Enter' , keyCode : 13 , which : 13 } ) ;
201
- expect ( autocompleteWrapper . state ( ' value' ) ) . to . equal ( 'Arizona' ) ;
202
+ expect ( value ) . to . equal ( 'Arizona' ) ;
202
203
expect ( autocompleteWrapper . state ( 'isOpen' ) ) . to . be . false ;
203
204
204
205
} ) ;
@@ -238,7 +239,7 @@ describe('Autocomplete#renderMenu', () => {
238
239
239
240
it ( 'should return a menu ReactComponent with a subset of children when partial match text has been entered' , ( ) => {
240
241
// Input 'Ar' should result in 6 items in the menu, populated from autocomplete.
241
- autocompleteInputWrapper . simulate ( 'change' , { target : { value : 'Ar' } } ) ;
242
+ autocompleteWrapper . setProps ( { value : 'Ar' } ) ;
242
243
243
244
var autocompleteMenu = autocompleteWrapper . instance ( ) . renderMenu ( ) ;
244
245
expect ( autocompleteMenu . props . children . length ) . to . be . equal ( 6 ) ;
0 commit comments