@@ -49,22 +49,22 @@ describe('search-box()', () => {
4949 } ) ;
5050
5151 context ( 'targeting a div' , ( ) => {
52+ let opts ;
53+
5254 beforeEach ( ( ) => {
5355 container = document . createElement ( 'div' ) ;
54- widget = searchBox ( { container} ) ;
55- } ) ;
56-
57- it ( 'configures nothing' , ( ) => {
58- expect ( widget . getConfiguration ) . toEqual ( undefined ) ;
56+ opts = { container} ;
5957 } ) ;
6058
6159 it ( 'adds an input inside the div' , ( ) => {
60+ widget = searchBox ( opts ) ;
6261 widget . init ( { state, helper} ) ;
6362 let inputs = container . getElementsByTagName ( 'input' ) ;
6463 expect ( inputs . length ) . toEqual ( 1 ) ;
6564 } ) ;
6665
6766 it ( 'sets default HTML attribute to the input' , ( ) => {
67+ widget = searchBox ( opts ) ;
6868 widget . init ( { state, helper} ) ;
6969 let input = container . getElementsByTagName ( 'input' ) [ 0 ] ;
7070 expect ( input . getAttribute ( 'autocapitalize' ) ) . toEqual ( 'off' ) ;
@@ -76,6 +76,23 @@ describe('search-box()', () => {
7676 expect ( input . getAttribute ( 'spellcheck' ) ) . toEqual ( 'false' ) ;
7777 expect ( input . getAttribute ( 'type' ) ) . toEqual ( 'text' ) ;
7878 } ) ;
79+
80+ it ( 'supports cssClasses option' , ( ) => {
81+ opts . cssClasses = {
82+ root : 'root-class' ,
83+ input : 'input-class'
84+ } ;
85+
86+ widget = searchBox ( opts ) ;
87+ widget . init ( { state, helper} ) ;
88+ let actualRootClasses = container . querySelector ( 'input' ) . parentNode . getAttribute ( 'class' ) ;
89+ let actualInputClasses = container . querySelector ( 'input' ) . getAttribute ( 'class' ) ;
90+ let expectedRootClasses = 'ais-search-box root-class' ;
91+ let expectedInputClasses = 'ais-search-box--input input-class' ;
92+
93+ expect ( actualRootClasses ) . toEqual ( expectedRootClasses ) ;
94+ expect ( actualInputClasses ) . toEqual ( expectedInputClasses ) ;
95+ } ) ;
7996 } ) ;
8097
8198 context ( 'targeting an input' , ( ) => {
@@ -102,6 +119,20 @@ describe('search-box()', () => {
102119 expect ( container . getAttribute ( 'class' ) ) . toEqual ( 'my-class ais-search-box--input' ) ;
103120 expect ( container . getAttribute ( 'placeholder' ) ) . toEqual ( 'Search' ) ;
104121 } ) ;
122+
123+ it ( 'supports cssClasses' , ( ) => {
124+ container = createHTMLNodeFromString ( '<input class="my-class" />' ) ;
125+ widget = searchBox ( { container, cssClasses : { root : 'root-class' , input : 'input-class' } } ) ;
126+ widget . init ( { state, helper} ) ;
127+
128+ let actualRootClasses = container . parentNode . getAttribute ( 'class' ) ;
129+ let actualInputClasses = container . getAttribute ( 'class' ) ;
130+ let expectedRootClasses = 'ais-search-box root-class' ;
131+ let expectedInputClasses = 'my-class ais-search-box--input input-class' ;
132+
133+ expect ( actualRootClasses ) . toEqual ( expectedRootClasses ) ;
134+ expect ( actualInputClasses ) . toEqual ( expectedInputClasses ) ;
135+ } ) ;
105136 } ) ;
106137
107138 context ( 'wraps the input in a div' , ( ) => {
0 commit comments