From 6ec07fe74aff413c3d90b87cedc7e41f5879392a Mon Sep 17 00:00:00 2001 From: Samuel Vaillant Date: Mon, 6 May 2019 12:18:21 +0200 Subject: [PATCH] refactor(searchForFacetValues): use object vs list of arguments (#684) --- src/algoliasearch.helper.js | 7 ++++++- test/spec/algoliasearch.helper/events.js | 18 ++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/algoliasearch.helper.js b/src/algoliasearch.helper.js index c49c92ce24..ae9efb80b5 100644 --- a/src/algoliasearch.helper.js +++ b/src/algoliasearch.helper.js @@ -295,7 +295,12 @@ AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxF this._currentNbQueries++; var self = this; - this.emit('searchForFacetValues', state, facet, query); + this.emit('searchForFacetValues', { + state: state, + facet: facet, + query: query + }); + var searchForFacetValuesPromise = clientHasSFFV ? this.client.searchForFacetValues([{indexName: state.index, params: algoliaQuery}]) : this.client.initIndex(state.index).searchForFacetValues(algoliaQuery); diff --git a/test/spec/algoliasearch.helper/events.js b/test/spec/algoliasearch.helper/events.js index 609df43da2..5ea30956f6 100644 --- a/test/spec/algoliasearch.helper/events.js +++ b/test/spec/algoliasearch.helper/events.js @@ -279,22 +279,24 @@ test('searchOnce event should be emitted once when the search is triggered using test('searchForFacetValues event should be emitted once when the search is triggered using' + ' searchForFacetValues and before the request is sent', function() { + var searchedForFacetValues = jest.fn(); var fakeClient = makeFakeClient(); var helper = algoliaSearchHelper(fakeClient, 'Index', { disjunctiveFacets: ['city'], facets: ['tower'] }); - var count = 0; + helper.on('searchForFacetValues', searchedForFacetValues); - helper.on('searchForFacetValues', function() { - count++; - }); - - expect(count).toBe(0); + expect(searchedForFacetValues).toHaveBeenCalledTimes(0); expect(fakeClient.searchForFacetValues).toHaveBeenCalledTimes(0); - helper.searchForFacetValues(); - expect(count).toBe(1); + helper.searchForFacetValues('city', 'NYC'); + expect(searchedForFacetValues).toHaveBeenCalledTimes(1); + expect(searchedForFacetValues).toHaveBeenLastCalledWith({ + state: helper.state, + facet: 'city', + query: 'NYC' + }); expect(fakeClient.searchForFacetValues).toHaveBeenCalledTimes(1); });