@@ -5,6 +5,28 @@ import algoliasearchHelper, {
55import connectSearchBox from '../connectSearchBox' ;
66
77describe ( 'connectSearchBox' , ( ) => {
8+ const getInitializedWidget = ( config = { } ) => {
9+ const renderFn = jest . fn ( ) ;
10+ const makeWidget = connectSearchBox ( renderFn ) ;
11+ const widget = makeWidget ( {
12+ ...config ,
13+ } ) ;
14+
15+ const initialConfig = { } ;
16+ const helper = algoliasearchHelper ( { } , '' , initialConfig ) ;
17+ helper . search = jest . fn ( ) ;
18+
19+ widget . init ( {
20+ helper,
21+ state : helper . state ,
22+ createURL : ( ) => '#' ,
23+ } ) ;
24+
25+ const { refine } = renderFn . mock . calls [ 0 ] [ 0 ] ;
26+
27+ return [ widget , helper , refine ] ;
28+ } ;
29+
830 describe ( 'Usage' , ( ) => {
931 it ( 'throws without render function' , ( ) => {
1032 expect ( ( ) => {
@@ -369,105 +391,89 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/search-box/
369391 } ) ;
370392 } ) ;
371393
372- describe ( 'routing' , ( ) => {
373- const getInitializedWidget = ( config = { } ) => {
374- const renderFn = jest . fn ( ) ;
375- const makeWidget = connectSearchBox ( renderFn ) ;
376- const widget = makeWidget ( {
377- ...config ,
394+ describe ( 'getWidgetState' , ( ) => {
395+ test ( 'should give back the object unmodified if the default value is selected' , ( ) => {
396+ const [ widget , helper ] = getInitializedWidget ( ) ;
397+ const uiStateBefore = { } ;
398+ const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
399+ searchParameters : helper . state ,
400+ helper,
378401 } ) ;
402+ expect ( uiStateAfter ) . toBe ( uiStateBefore ) ;
403+ } ) ;
379404
380- const initialConfig = { } ;
381- const helper = algoliasearchHelper ( { } , '' , initialConfig ) ;
382- helper . search = jest . fn ( ) ;
383-
384- widget . init ( {
405+ test ( 'should add an entry equal to the refinement' , ( ) => {
406+ const [ widget , helper , refine ] = getInitializedWidget ( ) ;
407+ refine ( 'some query' ) ;
408+ const uiStateBefore = { } ;
409+ const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
410+ searchParameters : helper . state ,
385411 helper,
386- state : helper . state ,
387- createURL : ( ) => '#' ,
388412 } ) ;
413+ expect ( uiStateAfter ) . toMatchSnapshot ( ) ;
414+ } ) ;
389415
390- const { refine } = renderFn . mock . calls [ 0 ] [ 0 ] ;
391-
392- return [ widget , helper , refine ] ;
393- } ;
394-
395- describe ( 'getWidgetState' , ( ) => {
396- test ( 'should give back the object unmodified if the default value is selected' , ( ) => {
397- const [ widget , helper ] = getInitializedWidget ( ) ;
398- const uiStateBefore = { } ;
399- const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
416+ test ( 'should give back the same instance if the value is alreay in the uiState' , ( ) => {
417+ const [ widget , helper , refine ] = getInitializedWidget ( ) ;
418+ refine ( 'query' ) ;
419+ const uiStateBefore = widget . getWidgetState (
420+ { } ,
421+ {
400422 searchParameters : helper . state ,
401423 helper,
402- } ) ;
403- expect ( uiStateAfter ) . toBe ( uiStateBefore ) ;
424+ }
425+ ) ;
426+ const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
427+ searchParameters : helper . state ,
428+ helper,
404429 } ) ;
430+ expect ( uiStateAfter ) . toBe ( uiStateBefore ) ;
431+ } ) ;
432+ } ) ;
405433
406- test ( 'should add an entry equal to the refinement' , ( ) => {
407- const [ widget , helper , refine ] = getInitializedWidget ( ) ;
408- refine ( 'some query' ) ;
409- const uiStateBefore = { } ;
410- const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
411- searchParameters : helper . state ,
412- helper,
413- } ) ;
414- expect ( uiStateAfter ) . toMatchSnapshot ( ) ;
415- } ) ;
434+ describe ( 'getWidgetSearchParameters' , ( ) => {
435+ test ( 'returns the `SearchParameters` with the value from `uiState`' , ( ) => {
436+ const [ widget , helper ] = getInitializedWidget ( ) ;
416437
417- test ( 'should give back the same instance if the value is alreay in the uiState' , ( ) => {
418- const [ widget , helper , refine ] = getInitializedWidget ( ) ;
419- refine ( 'query' ) ;
420- const uiStateBefore = widget . getWidgetState (
421- { } ,
422- {
423- searchParameters : helper . state ,
424- helper,
425- }
426- ) ;
427- const uiStateAfter = widget . getWidgetState ( uiStateBefore , {
428- searchParameters : helper . state ,
429- helper,
430- } ) ;
431- expect ( uiStateAfter ) . toBe ( uiStateBefore ) ;
438+ expect ( helper . state ) . toEqual (
439+ new SearchParameters ( {
440+ index : '' ,
441+ } )
442+ ) ;
443+
444+ const actual = widget . getWidgetSearchParameters ( helper . state , {
445+ uiState : {
446+ query : 'Apple' ,
447+ } ,
432448 } ) ;
449+
450+ expect ( actual ) . toEqual (
451+ new SearchParameters ( {
452+ index : '' ,
453+ query : 'Apple' ,
454+ } )
455+ ) ;
433456 } ) ;
434457
435- describe ( 'getWidgetSearchParameters' , ( ) => {
436- test ( 'should return the same SP if no value is in the UI state' , ( ) => {
437- const [ widget , helper ] = getInitializedWidget ( ) ;
438- const uiState = { } ;
439- const searchParametersBefore = SearchParameters . make ( helper . state ) ;
440- const searchParametersAfter = widget . getWidgetSearchParameters (
441- searchParametersBefore ,
442- { uiState }
443- ) ;
444- expect ( searchParametersAfter ) . toBe ( searchParametersBefore ) ;
445- } ) ;
458+ test ( 'returns the `SearchParameters` with the default value' , ( ) => {
459+ const [ widget , helper ] = getInitializedWidget ( ) ;
446460
447- test ( 'should add the refinements according to the UI state provided' , ( ) => {
448- const [ widget , helper ] = getInitializedWidget ( ) ;
449- const uiState = {
450- query : 'some search' ,
451- } ;
452- const searchParametersBefore = SearchParameters . make ( helper . state ) ;
453- const searchParametersAfter = widget . getWidgetSearchParameters (
454- searchParametersBefore ,
455- { uiState }
456- ) ;
457- expect ( searchParametersAfter ) . toMatchSnapshot ( ) ;
458- } ) ;
461+ expect ( helper . state ) . toEqual (
462+ new SearchParameters ( {
463+ index : '' ,
464+ } )
465+ ) ;
459466
460- test ( 'should enforce the default value if no value is the ui state' , ( ) => {
461- const [ widget , helper , refine ] = getInitializedWidget ( ) ;
462- refine ( 'previous search' ) ;
463- const uiState = { } ;
464- const searchParametersBefore = SearchParameters . make ( helper . state ) ;
465- const searchParametersAfter = widget . getWidgetSearchParameters (
466- searchParametersBefore ,
467- { uiState }
468- ) ;
469- expect ( searchParametersAfter ) . toMatchSnapshot ( ) ;
467+ const actual = widget . getWidgetSearchParameters ( helper . state , {
468+ uiState : { } ,
470469 } ) ;
470+
471+ expect ( actual ) . toEqual (
472+ new SearchParameters ( {
473+ index : '' ,
474+ query : '' ,
475+ } )
476+ ) ;
471477 } ) ;
472478 } ) ;
473479} ) ;
0 commit comments