@@ -30,8 +30,13 @@ const defaultProps: AutosuggestProps = {
3030 clearAriaLabel : 'clear input' ,
3131} ;
3232
33+ const ControlledAutosuggest = ( props : AutosuggestProps ) => {
34+ const [ value , setValue ] = React . useState ( props . value ) ;
35+ return < Autosuggest { ...props } value = { value } onChange = { event => setValue ( event . detail . value ) } /> ;
36+ } ;
37+
3338function renderAutosuggest ( props : Partial < AutosuggestProps > ) {
34- const { container } = render ( < Autosuggest { ...defaultProps } { ...props } /> ) ;
39+ const { container } = render ( < ControlledAutosuggest { ...defaultProps } { ...props } /> ) ;
3540 const wrapper = createWrapper ( container ) . findAutosuggest ( ) ! ;
3641 return { container, wrapper } ;
3742}
@@ -127,8 +132,9 @@ describe('footer types', () => {
127132 } ) ;
128133
129134 test ( 'results' , async ( ) => {
130- renderAutosuggest ( { value : 'x' , filteringResultsText : ( ) => '3 items' } ) ;
135+ const { wrapper } = renderAutosuggest ( { filteringResultsText : ( ) => '3 items' } ) ;
131136 focusInput ( ) ;
137+ wrapper . setInputValue ( 'x' ) ;
132138 expectDropdown ( ) ;
133139 expectFooterSticky ( true ) ;
134140 expectFooterContent ( '3 items' ) ;
@@ -171,9 +177,10 @@ describe('filtering results', () => {
171177 expectFooterContent ( 'No options' ) ;
172178 } ) ;
173179
174- test ( 'displays results footer when value is not empty ' , ( ) => {
175- renderAutosuggest ( { value : ' ' , options : [ ] , filteringResultsText : ( ) => '0 items' } ) ;
180+ test ( 'displays results footer when value is entered but not filtering ' , ( ) => {
181+ const { wrapper } = renderAutosuggest ( { options : [ ] , filteringResultsText : ( ) => '0 items' } ) ;
176182 focusInput ( ) ;
183+ wrapper . setInputValue ( ' ' ) ;
177184 expectFooterContent ( '0 items' ) ;
178185 } ) ;
179186 } ) ;
@@ -185,9 +192,16 @@ describe('filtering results', () => {
185192 expectNoFooter ( ) ;
186193 } ) ;
187194
188- test ( 'displays results footer when value is not empty' , ( ) => {
195+ test ( 'displays no footer when value is not empty' , ( ) => {
189196 renderAutosuggest ( { value : ' ' , statusType : 'pending' , filteringResultsText : ( ) => '3 items' } ) ;
190197 focusInput ( ) ;
198+ expectNoFooter ( ) ;
199+ } ) ;
200+
201+ test ( 'displays results footer when value is entered' , ( ) => {
202+ const { wrapper } = renderAutosuggest ( { statusType : 'pending' , filteringResultsText : ( ) => '3 items' } ) ;
203+ focusInput ( ) ;
204+ wrapper . setInputValue ( ' ' ) ;
191205 expectFooterContent ( '3 items' ) ;
192206 } ) ;
193207 } ) ;
@@ -233,15 +247,23 @@ describe('filtering results', () => {
233247 expectFooterContent ( 'finished!' ) ;
234248 } ) ;
235249
236- test ( 'displays results footer when finished w/o finished text and value is not empty' , ( ) => {
237- renderAutosuggest ( { value : ' ' , finishedText : undefined , filteringResultsText : ( ) => '3 items' } ) ;
250+ test ( 'displays finished footer when finished w/ finished text and value is present but not filtering' , ( ) => {
251+ renderAutosuggest ( { value : ' ' , filteringResultsText : ( ) => '3 items' } ) ;
252+ focusInput ( ) ;
253+ expectFooterContent ( 'finished!' ) ;
254+ } ) ;
255+
256+ test ( 'displays results footer when finished w/o finished text and value is entered' , ( ) => {
257+ const { wrapper } = renderAutosuggest ( { finishedText : undefined , filteringResultsText : ( ) => '3 items' } ) ;
238258 focusInput ( ) ;
259+ wrapper . setInputValue ( ' ' ) ;
239260 expectFooterContent ( '3 items' ) ;
240261 } ) ;
241262
242- test ( 'displays results footer when finished w/ finished text and value is not empty ' , ( ) => {
243- renderAutosuggest ( { value : ' ' , filteringResultsText : ( ) => '3 items' } ) ;
263+ test ( 'displays results footer when finished w/ finished text and value is entered ' , ( ) => {
264+ const { wrapper } = renderAutosuggest ( { filteringResultsText : ( ) => '3 items' } ) ;
244265 focusInput ( ) ;
266+ wrapper . setInputValue ( ' ' ) ;
245267 expectFooterContent ( '3 items' ) ;
246268 } ) ;
247269 } ) ;
0 commit comments