Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

Commit

Permalink
fix(isHierarchicalFacetRefined): return false if refinement isn't a f…
Browse files Browse the repository at this point in the history
…acet (#730)

* fix(isHierarchicalFacetRefined): return false if refinement isn't a facet

same as #722 again

* fix: move the error into addHierarchicalFacet

still necessary here
  • Loading branch information
Haroenv committed Nov 18, 2019
1 parent 9d7ae87 commit 89fa010
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/SearchParameters/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -1066,6 +1066,9 @@ SearchParameters.prototype = {
if (this.isHierarchicalFacetRefined(facet)) {
throw new Error(facet + ' is already refined.');
}
if (!this.isHierarchicalFacet(facet)) {
throw new Error(facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration.');
}
var mod = {};
mod[facet] = [path];
return this.setQueryParameters({
Expand Down Expand Up @@ -1186,8 +1189,7 @@ SearchParameters.prototype = {
*/
isHierarchicalFacetRefined: function isHierarchicalFacetRefined(facet, value) {
if (!this.isHierarchicalFacet(facet)) {
throw new Error(
facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration');
return false;
}

var refinements = this.getHierarchicalRefinement(facet);
Expand Down
58 changes: 58 additions & 0 deletions test/spec/SearchParameters/isHierarchicalFacetRefined.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
'use strict';

var SearchParameters = require('../../../src/SearchParameters');

test('isHierarchicalFacetRefined returns true if value in hierarchicalFacetsRefinements', function() {
var state = new SearchParameters({
hierarchicalFacets: [{
name: 'categories',
attributes: ['categories.lvl0', 'categories.lvl1'],
separator: ' | '
}],
hierarchicalFacetsRefinements: {
categories: ['beers | fancy ones']
}
});

expect(state.isHierarchicalFacetRefined('categories', 'beers | fancy ones')).toBe(true);
});

test('isHierarchicalFacetRefined returns true if something is refined when not passing a value', function() {
var state = new SearchParameters({
hierarchicalFacets: [{
name: 'categories',
attributes: ['categories.lvl0', 'categories.lvl1'],
separator: ' | '
}],
hierarchicalFacetsRefinements: {
categories: ['beers | fancy ones']
}
});

expect(state.isHierarchicalFacetRefined('categories')).toBe(true);
});

test('isHierarchicalFacetRefined returns false if value not in hierarchicalFacetsRefinements', function() {
var state = new SearchParameters({
hierarchicalFacets: [{
name: 'categories',
attributes: ['categories.lvl0', 'categories.lvl1'],
separator: ' | '
}],
hierarchicalFacetsRefinements: {
categories: ['beers | fancy ones']
}
});

expect(state.isHierarchicalFacetRefined('categories', 'beers | cheap ones')).toBe(false);
});

test('isHierarchicalFacetRefined returns false if facet is not hierarchical', function() {
var state = new SearchParameters({
hierarchicalFacetsRefinements: {
categories: ['beers | fancy ones']
}
});

expect(state.isHierarchicalFacetRefined('categories', 'beers | fancy ones')).toBe(false);
});

0 comments on commit 89fa010

Please sign in to comment.