1+ import React from 'react' ;
2+
3+ import Autocomplete from './Autocomplete.jsx' ;
4+
5+ test ( 'className default is autocomplete' , ( ) => {
6+ const component = shallow ( < Autocomplete /> ) ;
7+ expect ( component . hasClass ( 'autocomplete' ) ) . toBe ( true ) ;
8+ } ) ;
9+
10+ test ( 'className is test-autocomplete' , ( ) => {
11+ const component = shallow ( < Autocomplete className = "test-autocomplete" /> ) ;
12+ expect ( component . hasClass ( 'test-autocomplete' ) ) . toBe ( true ) ;
13+ } ) ;
14+
15+ test ( 'placeholder of input is updated from property' , ( ) => {
16+ const component = shallow ( < Autocomplete placeholder = "Search User" /> ) ;
17+ expect ( component . find ( 'input' ) . prop ( 'placeholder' ) ) . toEqual ( 'Search User' ) ;
18+ } ) ;
19+
20+ test ( 'click on Clear triggers handleSearch and handleBlur' , ( ) => {
21+ const searchChanged = ( value ) => {
22+ expect ( value ) . toEqual ( '' ) ;
23+ } ,
24+ handleBlur = ( ) => { } ,
25+ spy = jest . spyOn ( Autocomplete . prototype , 'handleClear' ) ,
26+ component = mount ( < Autocomplete searchChanged = { searchChanged } handleBlur = { handleBlur } /> ) ;
27+ component . find ( 'CustomButton' ) . simulate ( 'click' ) ;
28+
29+ expect ( spy ) . toHaveBeenCalled ( ) ;
30+ } ) ;
31+
32+ test ( 'onChange triggers handleSearchChanged' , ( ) => {
33+ const searchChanged = ( value ) => {
34+ expect ( value ) . toEqual ( '' ) ;
35+ } ,
36+ spy = jest . spyOn ( Autocomplete . prototype , 'handleSearchChanged' ) ,
37+ component = mount ( < Autocomplete searchChanged = { searchChanged } /> ) ;
38+ component . find ( 'input' ) . simulate ( 'change' , { } ) ;
39+
40+ expect ( spy ) . toHaveBeenCalled ( ) ;
41+ } ) ;
42+
43+ test ( 'onBlur triggers handleBlur' , done => {
44+ const searchChanged = ( ) => {
45+ } ,
46+ handleBlur = ( ) => { } ,
47+ spy = jest . spyOn ( Autocomplete . prototype , 'handleBlur' ) ,
48+ component = mount ( < Autocomplete searchChanged = { searchChanged } handleBlur = { handleBlur } /> ) ;
49+ component . find ( 'input' ) . simulate ( 'blur' , { } ) ;
50+ expect ( spy ) . toHaveBeenCalled ( ) ;
51+ done ( ) ;
52+ } )
53+
54+ test ( 'if value and no items empty-items className is added' , ( ) => {
55+ const component = mount ( < Autocomplete value = "abc" /> ) ,
56+ input = component . find ( 'input' ) ;
57+ expect ( input . hasClass ( 'empty-items' ) ) . toBe ( true ) ;
58+ } )
0 commit comments