@blaze-cms/react-page-builder 0.113.0 → 0.114.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +5 -8
  3. package/lib/components/Card/CardRender.js +61 -17
  4. package/lib/components/Card/CardRender.js.map +1 -1
  5. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  6. package/lib/components/DataSummary/helpers/build-loop-props-content.js +1 -1
  7. package/lib/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  8. package/lib/components/List/ListBuilder.js +11 -6
  9. package/lib/components/List/ListBuilder.js.map +1 -1
  10. package/lib/components/List/ListFactory.js +20 -7
  11. package/lib/components/List/ListFactory.js.map +1 -1
  12. package/lib/components/List/helpers/get-sort-props.js +46 -0
  13. package/lib/components/List/helpers/get-sort-props.js.map +1 -0
  14. package/lib/components/List/helpers/index.js +8 -0
  15. package/lib/components/List/helpers/index.js.map +1 -1
  16. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  17. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  18. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +57 -20
  19. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  20. package/lib/components/SearchFilter/SearchFilterContainer.js +8 -4
  21. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  22. package/lib/components/SearchFilter/components/Checkbox.js +5 -2
  23. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  24. package/lib/components/SearchFilter/components/Range.js +7 -3
  25. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  26. package/lib/components/SearchFilter/components/Select.js +5 -2
  27. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  28. package/lib/components/SearchFilter/constants.js +13 -1
  29. package/lib/components/SearchFilter/constants.js.map +1 -1
  30. package/lib/components/SearchFilter/helpers/build-query.js +6 -5
  31. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  32. package/lib/components/SearchFilter/helpers/get-range-value.js +6 -4
  33. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  34. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js +29 -0
  35. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  36. package/lib/components/SearchFilter/helpers/index.js +8 -0
  37. package/lib/components/SearchFilter/helpers/index.js.map +1 -1
  38. package/lib/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  39. package/lib/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  40. package/lib/helpers/get-generic-render-variables.js +32 -22
  41. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  42. package/lib-es/components/Card/CardRender.js +32 -5
  43. package/lib-es/components/Card/CardRender.js.map +1 -1
  44. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  45. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js +1 -1
  46. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  47. package/lib-es/components/List/ListBuilder.js +11 -6
  48. package/lib-es/components/List/ListBuilder.js.map +1 -1
  49. package/lib-es/components/List/ListFactory.js +20 -8
  50. package/lib-es/components/List/ListFactory.js.map +1 -1
  51. package/lib-es/components/List/helpers/get-sort-props.js +26 -0
  52. package/lib-es/components/List/helpers/get-sort-props.js.map +1 -0
  53. package/lib-es/components/List/helpers/index.js +1 -0
  54. package/lib-es/components/List/helpers/index.js.map +1 -1
  55. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  56. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  57. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +51 -21
  58. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  59. package/lib-es/components/SearchFilter/SearchFilterContainer.js +8 -4
  60. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  61. package/lib-es/components/SearchFilter/components/Checkbox.js +5 -2
  62. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  63. package/lib-es/components/SearchFilter/components/Range.js +7 -3
  64. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  65. package/lib-es/components/SearchFilter/components/Select.js +5 -2
  66. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  67. package/lib-es/components/SearchFilter/constants.js +12 -1
  68. package/lib-es/components/SearchFilter/constants.js.map +1 -1
  69. package/lib-es/components/SearchFilter/helpers/build-query.js +5 -4
  70. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  71. package/lib-es/components/SearchFilter/helpers/get-range-value.js +1 -1
  72. package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  73. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js +20 -0
  74. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  75. package/lib-es/components/SearchFilter/helpers/index.js +2 -1
  76. package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
  77. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  78. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  79. package/lib-es/helpers/get-generic-render-variables.js +22 -15
  80. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  81. package/package.json +2 -2
  82. package/src/components/Card/CardRender.js +24 -6
  83. package/src/components/Card/helpers/filter-query-setup.js +1 -0
  84. package/src/components/DataSummary/helpers/build-loop-props-content.js +1 -6
  85. package/src/components/List/ListBuilder.js +11 -6
  86. package/src/components/List/ListFactory.js +18 -8
  87. package/src/components/List/helpers/get-sort-props.js +17 -0
  88. package/src/components/List/helpers/index.js +1 -0
  89. package/src/components/SearchFilter/SearchFilter/FiltersList.js +15 -2
  90. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +75 -25
  91. package/src/components/SearchFilter/SearchFilterContainer.js +8 -4
  92. package/src/components/SearchFilter/components/Checkbox.js +4 -2
  93. package/src/components/SearchFilter/components/Range.js +7 -3
  94. package/src/components/SearchFilter/components/Select.js +4 -2
  95. package/src/components/SearchFilter/constants.js +14 -1
  96. package/src/components/SearchFilter/helpers/build-query.js +5 -4
  97. package/src/components/SearchFilter/helpers/get-range-value.js +3 -1
  98. package/src/components/SearchFilter/helpers/get-responsive-filter-classnames.js +22 -0
  99. package/src/components/SearchFilter/helpers/index.js +2 -0
  100. package/src/components/SearchFilter/helpers/is-device-desktop.js +2 -1
  101. package/src/helpers/get-generic-render-variables.js +22 -12
  102. package/tests/unit/src/components/DataSummary/helpers/build-loop-props-content.test.js +24 -0
  103. package/tests/unit/src/components/List/helpers/get-sort-props.test.js +58 -0
  104. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +29 -3
  105. package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +304 -6
  106. package/tests/unit/src/helpers/build-raw-query.test.js +2 -1
  107. package/tests/unit/src/helpers/get-generic-render-variables.test.js +5 -11
  108. package/lib/helpers/check-sort-by.js +0 -16
  109. package/lib/helpers/check-sort-by.js.map +0 -1
  110. package/lib-es/helpers/check-sort-by.js +0 -4
  111. package/lib-es/helpers/check-sort-by.js.map +0 -1
  112. package/src/helpers/check-sort-by.js +0 -4
@@ -16,9 +16,11 @@ const Range = ({
16
16
  entity,
17
17
  propsToDisplay,
18
18
  updateFilterValues,
19
- filterValues
19
+ filterValues,
20
+ shouldSearch
20
21
  }) => {
21
22
  const router = useRouter();
23
+ const debounceAmount = shouldSearch ? 1200 : 100;
22
24
  const { query } = parseUrl(decodeValue(router.asPath));
23
25
  const hasMultipleOptions = propsToDisplay.length > 1;
24
26
  const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];
@@ -39,8 +41,8 @@ const Range = ({
39
41
  const shouldShowRange = rangeOption && min !== max;
40
42
 
41
43
  const handleChange = debounce((option, value) => {
42
- updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, true);
43
- }, 1200);
44
+ updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);
45
+ }, debounceAmount);
44
46
 
45
47
  return (
46
48
  <>
@@ -86,11 +88,13 @@ Range.propTypes = {
86
88
  entity: PropTypes.string.isRequired,
87
89
  filterValues: PropTypes.object.isRequired,
88
90
  updateFilterValues: PropTypes.func.isRequired,
91
+ shouldSearch: PropTypes.bool,
89
92
  rangeInterval: PropTypes.number,
90
93
  label: PropTypes.string
91
94
  };
92
95
 
93
96
  Range.defaultProps = {
97
+ shouldSearch: false,
94
98
  rangeInterval: 1,
95
99
  label: ''
96
100
  };
@@ -4,7 +4,7 @@ import Select from '@blaze-react/select';
4
4
  import { withTitle } from '../../../HOC';
5
5
  import { DEFAULT_OPTION } from '../constants';
6
6
 
7
- const SelectFilter = ({ data, label, prop, updateFilterValues, filterValues }) => {
7
+ const SelectFilter = ({ data, label, prop, updateFilterValues, filterValues, shouldSearch }) => {
8
8
  const filterValue = filterValues[prop] || '';
9
9
 
10
10
  const options = data[prop].buckets
@@ -21,7 +21,7 @@ const SelectFilter = ({ data, label, prop, updateFilterValues, filterValues }) =
21
21
  id={prop}
22
22
  options={optionsJoined}
23
23
  onChange={({ value }) => {
24
- updateFilterValues({ [prop]: value }, true);
24
+ updateFilterValues({ [prop]: value }, shouldSearch);
25
25
  }}
26
26
  />
27
27
  );
@@ -32,10 +32,12 @@ SelectFilter.propTypes = {
32
32
  prop: PropTypes.string.isRequired,
33
33
  filterValues: PropTypes.object.isRequired,
34
34
  updateFilterValues: PropTypes.func.isRequired,
35
+ shouldSearch: PropTypes.bool,
35
36
  label: PropTypes.string
36
37
  };
37
38
 
38
39
  SelectFilter.defaultProps = {
40
+ shouldSearch: false,
39
41
  label: ''
40
42
  };
41
43
 
@@ -24,6 +24,18 @@ const SEARCH = 'Search';
24
24
  const REFINE = `Refine Search`;
25
25
  const MOBILE_REFINEMENT_TITLE = 'Search refinement';
26
26
 
27
+ const MORE_FILTERS_CLASSES_BASE = 'filter__more-filters';
28
+ const MORE_FILTERS_CLASSES = {
29
+ MOBILE_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-mobile-wrapper`,
30
+ MOBILE_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-mobile-content`,
31
+ MOBILE_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-mobile-toggler`,
32
+ MOBILE_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-mobile-buttons`,
33
+ DESKTOP_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-desktop-wrapper`,
34
+ DESKTOP_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-desktop-content`,
35
+ DESKTOP_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-desktop-toggler`,
36
+ DESKTOP_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-desktop-buttons`
37
+ };
38
+
27
39
  export {
28
40
  CHECKBOX,
29
41
  SELECT,
@@ -49,5 +61,6 @@ export {
49
61
  RESET,
50
62
  SEARCH,
51
63
  REFINE,
52
- MOBILE_REFINEMENT_TITLE
64
+ MOBILE_REFINEMENT_TITLE,
65
+ MORE_FILTERS_CLASSES
53
66
  };
@@ -8,12 +8,13 @@ const buildQuery = (filterValues, filters) => {
8
8
 
9
9
  filters.forEach(({ propsToDisplay, type }) => {
10
10
  if (type === TEXT_SEARCH) return;
11
- propsToDisplay.map(prop => {
11
+
12
+ propsToDisplay.forEach(prop => {
12
13
  const value = filterValues[prop];
13
14
  const parsedValue = parseFilterValue(prop, type, value);
14
- if (!parsedValue) return null;
15
- if (parsedValue) newQuery.push(parsedValue);
16
- return parsedValue;
15
+ if (parsedValue && !newQuery.includes(parsedValue)) {
16
+ newQuery.push(parsedValue);
17
+ }
17
18
  });
18
19
  });
19
20
 
@@ -4,7 +4,9 @@ const getRangeValue = (rawQueryProp, rangeInterval, _min, _max) => {
4
4
  const { min, max } = calculateMinMax({ min: _min, max: _max }, rangeInterval);
5
5
 
6
6
  if (rawQueryProp) {
7
- const [queryParamMin, queryParamMax] = rawQueryProp.split('-');
7
+ const [queryParamMin, queryParamMax] = Array.isArray(rawQueryProp)
8
+ ? rawQueryProp[0].split('-')
9
+ : rawQueryProp.split('-');
8
10
  const updatedMinValue = Number(queryParamMin);
9
11
  const updatedMaxValue = Number(queryParamMax);
10
12
 
@@ -0,0 +1,22 @@
1
+ import classnames from 'classnames';
2
+ import { MORE_FILTERS_CLASSES } from '../constants';
3
+
4
+ const getResponsiveFilterClassnames = (
5
+ moreFiltersDesktopCollapsed,
6
+ moreFiltersMobileCollapsed
7
+ ) => ({
8
+ moreFiltersMobileWrapperClass: classnames(MORE_FILTERS_CLASSES.MOBILE_WRAPPER, {
9
+ [`${MORE_FILTERS_CLASSES.MOBILE_WRAPPER}--open`]: !moreFiltersMobileCollapsed
10
+ }),
11
+ moreFiltersMobileTogglerClass: classnames(MORE_FILTERS_CLASSES.MOBILE_TOGGLER, {
12
+ [`${MORE_FILTERS_CLASSES.MOBILE_TOGGLER}--open`]: !moreFiltersMobileCollapsed
13
+ }),
14
+ moreFiltersDesktopWrapperClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_WRAPPER, {
15
+ [`${MORE_FILTERS_CLASSES.DESKTOP_WRAPPER}--open`]: !moreFiltersDesktopCollapsed
16
+ }),
17
+ moreFiltersDesktopTogglerClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_TOGGLER, {
18
+ [`${MORE_FILTERS_CLASSES.DESKTOP_TOGGLER}--open`]: !moreFiltersDesktopCollapsed
19
+ })
20
+ });
21
+
22
+ export default getResponsiveFilterClassnames;
@@ -2,6 +2,7 @@ import buildNewQuery from './build-new-query';
2
2
  import buildRawQueryStringified from './build-raw-query-stringified';
3
3
  import { decodeValue, encodeValue } from './decode-encode';
4
4
  import checkIfRangeUpdated from './check-if-range-updated';
5
+ import getResponsiveFilterClassnames from './get-responsive-filter-classnames';
5
6
  import getDisplayValue from './get-display-value';
6
7
  import calculateStep from './calculate-step';
7
8
  import calculateMinMax from './calculate-min-max';
@@ -20,6 +21,7 @@ export {
20
21
  decodeValue,
21
22
  encodeValue,
22
23
  checkIfRangeUpdated,
24
+ getResponsiveFilterClassnames,
23
25
  getDisplayValue,
24
26
  calculateStep,
25
27
  calculateMinMax,
@@ -1,5 +1,6 @@
1
1
  import { TABLET_WIDTH } from '../constants';
2
2
 
3
- const isDeviceDesktop = () => window.innerWidth > TABLET_WIDTH;
3
+ const isDeviceDesktop = () =>
4
+ typeof window !== 'undefined' ? window.innerWidth > TABLET_WIDTH : false;
4
5
 
5
6
  export default isDeviceDesktop;
@@ -1,31 +1,41 @@
1
- import checkSortby from './check-sort-by';
2
1
  import getSortbyFieldName from './get-sort-by-field-name';
3
2
  import { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';
4
3
 
4
+ const buildSortValues = (sortFilters, relations, stringProps) => {
5
+ if (!sortFilters || !sortFilters.length) return { sort: [] };
6
+ const sortValues = sortFilters
7
+ .map(
8
+ ({ sort, propsToDisplay }) =>
9
+ !!sort &&
10
+ !!propsToDisplay[0] &&
11
+ `${getSortbyFieldName(relations, propsToDisplay[0], stringProps)}:${sort.toLowerCase()}`
12
+ )
13
+ .filter(Boolean)
14
+ .join(',');
15
+
16
+ return { sort: sortValues };
17
+ };
5
18
  const getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied) => {
6
19
  if (isTextSearchApplied) {
7
20
  return {};
8
21
  }
9
- const { sort, sortby } = filterProps;
10
-
11
- const isSortbyArray = Array.isArray(sortby);
12
-
13
- const hasSortFields = sort && checkSortby(sortby, isSortbyArray);
14
-
15
- const sortValue = hasSortFields
16
- ? `${getSortbyFieldName(relations, sortby, stringProps, isSortbyArray)}:${sort.toLowerCase()}`
17
- : '';
22
+ const { sort, sortby, sortProperties = [] } = filterProps;
18
23
 
19
- return sortValue ? { sort: sortValue } : {};
24
+ return buildSortValues(
25
+ [{ sort, propsToDisplay: [sortby] }, ...sortProperties],
26
+ relations,
27
+ stringProps
28
+ );
20
29
  };
21
30
 
22
31
  const getGenericRenderVariables = (
23
32
  relations,
24
- { limit = DEFAULT_LIMIT, offset, ...filterProps } = {},
33
+ filterProps = {},
25
34
  stringProps = [],
26
35
  rawQueryStringified = '',
27
36
  isTextSearchFilterApplied = false
28
37
  ) => {
38
+ const { limit = DEFAULT_LIMIT, offset } = filterProps;
29
39
  const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);
30
40
  const raw = rawQueryStringified ? { rawQueryStringified } : {};
31
41
 
@@ -57,4 +57,28 @@ describe('buildLoopPropsContent helper function', () => {
57
57
  it('should return looped data based on limit if is reachable', () => {
58
58
  expect(withLimit).toEqual(mockedResults[3]);
59
59
  });
60
+
61
+ it('should have empty label if label is not set', () => {
62
+ const withNoLabel = buildLoopPropsContent(
63
+ mockedLoopProps,
64
+ [
65
+ {
66
+ bold: false,
67
+ enableLink: true,
68
+ label: '',
69
+ modifier: '',
70
+ prefix: '',
71
+ propertiesToDisplay: ['nestedLoopProp.nestedValue'],
72
+ shouldStrip: true
73
+ }
74
+ ],
75
+ 0,
76
+ mockedData[0]
77
+ );
78
+
79
+ withNoLabel.forEach(([label]) => {
80
+ expect(label).toEqual('');
81
+ });
82
+ expect.hasAssertions();
83
+ });
60
84
  });
@@ -0,0 +1,58 @@
1
+ import getSortProps from '../../../../../../src/components/List/helpers/get-sort-props';
2
+
3
+ const property = 'updated';
4
+ const defaultProperty = 'name';
5
+ const asc = 'asc';
6
+ const desc = 'desc';
7
+ const sortProperties = [
8
+ {
9
+ propsToDisplay: [property],
10
+ sort: asc
11
+ }
12
+ ];
13
+ const querySortBy = 'date';
14
+ const props = {
15
+ querySort: '',
16
+ sortProperties,
17
+ defaultSort: desc,
18
+ querySortBy: '',
19
+ defaultSortBy: [defaultProperty]
20
+ };
21
+
22
+ describe('getSortProps helper function', () => {
23
+ it('should ignore old sortby/sort and use sortProperties', () => {
24
+ const { sortbyFilters, updatedSortProperties } = getSortProps(props);
25
+ expect(sortbyFilters).toEqual([property]);
26
+ expect(updatedSortProperties).toEqual(sortProperties);
27
+ });
28
+
29
+ it('should add query sort', () => {
30
+ const { sortbyFilters, updatedSortProperties } = getSortProps({
31
+ ...props,
32
+ querySortBy,
33
+ querySort: desc
34
+ });
35
+ expect(sortbyFilters).toEqual([querySortBy, property]);
36
+ expect(updatedSortProperties).toEqual([
37
+ {
38
+ propsToDisplay: [querySortBy],
39
+ sort: desc
40
+ },
41
+ ...sortProperties
42
+ ]);
43
+ });
44
+
45
+ it('should use old style sort', () => {
46
+ const { sortbyFilters, updatedSortProperties } = getSortProps({
47
+ ...props,
48
+ sortProperties: []
49
+ });
50
+ expect(sortbyFilters).toEqual([defaultProperty]);
51
+ expect(updatedSortProperties).toEqual([
52
+ {
53
+ propsToDisplay: [defaultProperty],
54
+ sort: desc
55
+ }
56
+ ]);
57
+ });
58
+ });
@@ -22,7 +22,8 @@ const mockedProps = {
22
22
  handleSearch: jest.fn(),
23
23
  resetFilters: jest.fn(),
24
24
  name: 'test',
25
- groupAfter: 0,
25
+ groupAfterMobile: 0,
26
+ groupAfterDesktop: 0,
26
27
  isCollapsedOnResponsive: true,
27
28
  displaySearchFilter: false
28
29
  };
@@ -139,10 +140,35 @@ describe('SearchFilter component', () => {
139
140
  });
140
141
  });
141
142
 
142
- describe('when groupAfter > 0', () => {
143
+ describe('when groupAfterMobile > 0 and groupAfterDesktop = 0', () => {
143
144
  const specificMockedProps = {
144
145
  ...mockedProps,
145
- groupAfter: 1
146
+ groupAfterMobile: 1
147
+ };
148
+
149
+ it('should render without throwing error and match snapshot', () => {
150
+ const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
151
+ expect(asFragment()).toMatchSnapshot();
152
+ });
153
+ });
154
+
155
+ describe('when groupAfterMobile = 0 and groupAfterDesktop > 0', () => {
156
+ const specificMockedProps = {
157
+ ...mockedProps,
158
+ groupAfterDesktop: 1
159
+ };
160
+
161
+ it('should render without throwing error and match snapshot', () => {
162
+ const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
163
+ expect(asFragment()).toMatchSnapshot();
164
+ });
165
+ });
166
+
167
+ describe('when groupAfterMobile > 0 and groupAfterDesktop > 0', () => {
168
+ const specificMockedProps = {
169
+ ...mockedProps,
170
+ groupAfterMobile: 1,
171
+ groupAfterDesktop: 1
146
172
  };
147
173
 
148
174
  it('should render without throwing error and match snapshot', () => {