@blaze-cms/react-page-builder 0.122.1-alpha.0 → 0.122.3
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.
- package/CHANGELOG.md +34 -0
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +15 -50
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/helpers/build-raw-query.js +1 -1
- package/lib/helpers/build-raw-query.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +10 -40
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/helpers/build-raw-query.js +1 -1
- package/lib-es/helpers/build-raw-query.js.map +1 -1
- package/package.json +2 -2
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +113 -148
- package/src/helpers/build-raw-query.js +2 -1
- package/tests/helpers/mocks.js +1 -1
- package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +64 -86
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +133 -61
|
@@ -44,8 +44,6 @@ const SearchFilter = ({
|
|
|
44
44
|
groupAfterDesktop,
|
|
45
45
|
groupAfterMobile
|
|
46
46
|
}) => {
|
|
47
|
-
const [isDesktop, setIsDesktop] = useState(true);
|
|
48
|
-
const [pageWidth, setPageWidth] = useState(null);
|
|
49
47
|
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
50
48
|
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
51
49
|
const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
|
|
@@ -55,27 +53,6 @@ const SearchFilter = ({
|
|
|
55
53
|
handleSearch(newQuery);
|
|
56
54
|
}, 200);
|
|
57
55
|
|
|
58
|
-
useEffect(
|
|
59
|
-
() => {
|
|
60
|
-
if (window && !pageWidth) {
|
|
61
|
-
setPageWidth(window.innerWidth);
|
|
62
|
-
setIsDesktop(isDeviceDesktop());
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const handleResize = ({ target: { innerWidth } }) => {
|
|
66
|
-
setIsDesktop(isDeviceDesktop());
|
|
67
|
-
setPageWidth(innerWidth);
|
|
68
|
-
if (isDesktop) setDisplaySearchFilter(false);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
window.addEventListener('resize', handleResize);
|
|
72
|
-
return () => {
|
|
73
|
-
window.removeEventListener('resize', handleResize);
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
[isDesktop, pageWidth, setDisplaySearchFilter]
|
|
77
|
-
);
|
|
78
|
-
|
|
79
56
|
useEffect(
|
|
80
57
|
() => {
|
|
81
58
|
if (filterValues.shouldSearch) {
|
|
@@ -86,16 +63,9 @@ const SearchFilter = ({
|
|
|
86
63
|
[filterValues, handleSubmit]
|
|
87
64
|
);
|
|
88
65
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (!isDesktop && isCollapsedOnResponsive) {
|
|
93
|
-
isMobileFormDisplayed = displaySearchFilter;
|
|
94
|
-
isDesktopFormDisplayed = false;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const formClass = classnames({
|
|
98
|
-
'filter__form filter__form--mobile': isMobileFormDisplayed
|
|
66
|
+
const formClass = classnames('filter__form filter__form--initial', {
|
|
67
|
+
'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,
|
|
68
|
+
'filter__form--collapsible': isCollapsedOnResponsive
|
|
99
69
|
});
|
|
100
70
|
|
|
101
71
|
const {
|
|
@@ -122,143 +92,138 @@ const SearchFilter = ({
|
|
|
122
92
|
|
|
123
93
|
return (
|
|
124
94
|
<>
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
<
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
95
|
+
<form
|
|
96
|
+
ref={searchFilterRef}
|
|
97
|
+
className={formClass}
|
|
98
|
+
data-testid={formId}
|
|
99
|
+
id={formId}
|
|
100
|
+
onSubmit={e => {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
const newQuery = buildQuery(filterValues, filters);
|
|
103
|
+
handleSearch(newQuery);
|
|
104
|
+
}}>
|
|
105
|
+
{displaySearchFilter && (
|
|
106
|
+
<CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />
|
|
107
|
+
)}
|
|
108
|
+
|
|
109
|
+
<div className="filter filter--search-refine">
|
|
110
|
+
<ResetDesktopForm handleReset={handleReset} />
|
|
111
|
+
|
|
112
|
+
<div className="filter__wrapper filter__wrapper--search-refine">
|
|
113
|
+
{!shouldGroup && (
|
|
114
|
+
<FiltersList
|
|
115
|
+
shouldSearch={shouldSearch}
|
|
116
|
+
data={data}
|
|
117
|
+
filters={filters}
|
|
118
|
+
hasUrl={hasUrl}
|
|
119
|
+
entity={entity}
|
|
120
|
+
filterValues={filterValues}
|
|
121
|
+
updateFilterValues={updateFilterValues}
|
|
122
|
+
/>
|
|
123
|
+
)}
|
|
124
|
+
|
|
125
|
+
{shouldGroup && (
|
|
126
|
+
<>
|
|
145
127
|
<FiltersList
|
|
146
128
|
shouldSearch={shouldSearch}
|
|
147
129
|
data={data}
|
|
148
|
-
filters={filters}
|
|
130
|
+
filters={filters.slice(0, groupAfterMobile)}
|
|
149
131
|
hasUrl={hasUrl}
|
|
150
132
|
entity={entity}
|
|
151
133
|
filterValues={filterValues}
|
|
152
134
|
updateFilterValues={updateFilterValues}
|
|
153
135
|
/>
|
|
154
|
-
)}
|
|
155
|
-
|
|
156
|
-
{shouldGroup && (
|
|
157
|
-
<>
|
|
158
|
-
<FiltersList
|
|
159
|
-
shouldSearch={shouldSearch}
|
|
160
|
-
data={data}
|
|
161
|
-
filters={filters.slice(0, groupAfterMobile)}
|
|
162
|
-
hasUrl={hasUrl}
|
|
163
|
-
entity={entity}
|
|
164
|
-
filterValues={filterValues}
|
|
165
|
-
updateFilterValues={updateFilterValues}
|
|
166
|
-
/>
|
|
167
136
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
)}
|
|
186
|
-
hasUrl={hasUrl}
|
|
187
|
-
entity={entity}
|
|
188
|
-
filterValues={filterValues}
|
|
189
|
-
updateFilterValues={updateFilterValues}
|
|
190
|
-
/>
|
|
191
|
-
|
|
192
|
-
{!!groupAfterDesktop && (
|
|
193
|
-
<button
|
|
194
|
-
className={moreFiltersDesktopTogglerClass}
|
|
195
|
-
type="button"
|
|
196
|
-
onClick={() =>
|
|
197
|
-
setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)
|
|
198
|
-
}>
|
|
199
|
-
More filters
|
|
200
|
-
</button>
|
|
137
|
+
{!!groupAfterMobile && (
|
|
138
|
+
<button
|
|
139
|
+
className={moreFiltersMobileTogglerClass}
|
|
140
|
+
type="button"
|
|
141
|
+
onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>
|
|
142
|
+
Filters
|
|
143
|
+
</button>
|
|
144
|
+
)}
|
|
145
|
+
|
|
146
|
+
<div className={moreFiltersMobileWrapperClass}>
|
|
147
|
+
<div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>
|
|
148
|
+
<FiltersList
|
|
149
|
+
shouldSearch={shouldSearch && isDeviceDesktop()}
|
|
150
|
+
data={data}
|
|
151
|
+
filters={filters.slice(
|
|
152
|
+
groupAfterMobile,
|
|
153
|
+
groupAfterDesktop ? groupAfterDesktop - 1 : 0
|
|
201
154
|
)}
|
|
155
|
+
hasUrl={hasUrl}
|
|
156
|
+
entity={entity}
|
|
157
|
+
filterValues={filterValues}
|
|
158
|
+
updateFilterValues={updateFilterValues}
|
|
159
|
+
/>
|
|
160
|
+
|
|
161
|
+
{!!groupAfterDesktop && (
|
|
162
|
+
<button
|
|
163
|
+
className={moreFiltersDesktopTogglerClass}
|
|
164
|
+
type="button"
|
|
165
|
+
onClick={() =>
|
|
166
|
+
setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)
|
|
167
|
+
}>
|
|
168
|
+
More filters
|
|
169
|
+
</button>
|
|
170
|
+
)}
|
|
171
|
+
|
|
172
|
+
<div className={moreFiltersDesktopWrapperClass}>
|
|
173
|
+
<div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>
|
|
174
|
+
<FiltersList
|
|
175
|
+
shouldSearch={false}
|
|
176
|
+
data={data}
|
|
177
|
+
filters={filters.slice(groupAfterDesktop)}
|
|
178
|
+
hasUrl={hasUrl}
|
|
179
|
+
entity={entity}
|
|
180
|
+
filterValues={filterValues}
|
|
181
|
+
updateFilterValues={updateFilterValues}
|
|
182
|
+
/>
|
|
183
|
+
</div>
|
|
202
184
|
|
|
203
|
-
<div className={
|
|
204
|
-
<
|
|
205
|
-
<FiltersList
|
|
206
|
-
shouldSearch={false}
|
|
207
|
-
data={data}
|
|
208
|
-
filters={filters.slice(groupAfterDesktop)}
|
|
209
|
-
hasUrl={hasUrl}
|
|
210
|
-
entity={entity}
|
|
211
|
-
filterValues={filterValues}
|
|
212
|
-
updateFilterValues={updateFilterValues}
|
|
213
|
-
/>
|
|
214
|
-
</div>
|
|
215
|
-
|
|
216
|
-
<div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>
|
|
217
|
-
<ResetDesktopForm handleReset={handleReset} />
|
|
185
|
+
<div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>
|
|
186
|
+
<ResetDesktopForm handleReset={handleReset} />
|
|
218
187
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
</div>
|
|
188
|
+
<button className="button button--full-width" type="submit">
|
|
189
|
+
{SEARCH}
|
|
190
|
+
</button>
|
|
223
191
|
</div>
|
|
224
192
|
</div>
|
|
193
|
+
</div>
|
|
225
194
|
|
|
226
|
-
|
|
227
|
-
|
|
195
|
+
<div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>
|
|
196
|
+
<ResetDesktopForm handleReset={handleReset} />
|
|
228
197
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
</div>
|
|
198
|
+
<button className="button button--full-width" type="submit">
|
|
199
|
+
{SEARCH}
|
|
200
|
+
</button>
|
|
233
201
|
</div>
|
|
234
|
-
|
|
235
|
-
|
|
202
|
+
</div>
|
|
203
|
+
</>
|
|
204
|
+
)}
|
|
236
205
|
|
|
237
|
-
|
|
206
|
+
<br />
|
|
238
207
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
</div>
|
|
208
|
+
{!displaySearchFilter && (
|
|
209
|
+
<button className="button button--full-width" type="submit">
|
|
210
|
+
{SEARCH}
|
|
211
|
+
</button>
|
|
212
|
+
)}
|
|
245
213
|
</div>
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
{displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}
|
|
217
|
+
</form>
|
|
246
218
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
<div
|
|
253
|
-
className="filter__refine filter__refine--mobile-close"
|
|
254
|
-
data-testid="refine-mobile">
|
|
255
|
-
<div role="button" onClick={() => setDisplaySearchFilter(true)}>
|
|
256
|
-
{REFINE}
|
|
257
|
-
</div>
|
|
219
|
+
{isCollapsedOnResponsive &&
|
|
220
|
+
!displaySearchFilter && (
|
|
221
|
+
<div className="filter__refine filter__refine--mobile-close" data-testid="refine-mobile">
|
|
222
|
+
<div role="button" onClick={() => setDisplaySearchFilter(true)}>
|
|
223
|
+
{REFINE}
|
|
258
224
|
</div>
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
)}
|
|
225
|
+
</div>
|
|
226
|
+
)}
|
|
262
227
|
</>
|
|
263
228
|
);
|
|
264
229
|
};
|
|
@@ -71,7 +71,8 @@ const buildRawQuery = (
|
|
|
71
71
|
type: 'number',
|
|
72
72
|
script: {
|
|
73
73
|
lang: 'painless',
|
|
74
|
-
source:
|
|
74
|
+
source:
|
|
75
|
+
"!doc['id.keyword'].empty ? params.sortOrder.indexOf(doc['id.keyword'].value) : 0",
|
|
75
76
|
params: {
|
|
76
77
|
sortOrder: itemsToDisplayIds
|
|
77
78
|
}
|
package/tests/helpers/mocks.js
CHANGED
|
@@ -2074,7 +2074,7 @@ const RAW_QUERY_WITH_SHOULD_APPLY_SORT = {
|
|
|
2074
2074
|
type: 'number',
|
|
2075
2075
|
script: {
|
|
2076
2076
|
lang: 'painless',
|
|
2077
|
-
source: "doc['
|
|
2077
|
+
source: "!doc['id.keyword'].empty ? params.sortOrder.indexOf(doc['id.keyword'].value) : 0",
|
|
2078
2078
|
params: {
|
|
2079
2079
|
sortOrder: ITEMS_TO_DISPLAY
|
|
2080
2080
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render, screen
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
import '@testing-library/jest-dom';
|
|
4
4
|
import SearchFilter from '../../../../../../src/components/SearchFilter/SearchFilter';
|
|
5
|
-
import { TABLET_WIDTH } from '../../../../../../src/components/SearchFilter/constants';
|
|
6
5
|
|
|
7
6
|
// TODO DELETE WHEN UTIL WILL BE MERGED & USE IMPORT COMMENTED ABOVE
|
|
8
7
|
const renderComponent = (Component, props) => {
|
|
@@ -28,118 +27,97 @@ const mockedProps = {
|
|
|
28
27
|
displaySearchFilter: false
|
|
29
28
|
};
|
|
30
29
|
|
|
31
|
-
const customGlobal = global;
|
|
32
|
-
const defaultWidth = global.innerWidth;
|
|
33
|
-
|
|
34
|
-
afterAll(() => {
|
|
35
|
-
customGlobal.innerWidth = defaultWidth;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
30
|
describe('SearchFilter component', () => {
|
|
39
31
|
it('should be defined', () => {
|
|
40
32
|
expect(SearchFilter).toBeDefined();
|
|
41
33
|
});
|
|
42
34
|
|
|
43
|
-
describe('when
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
describe('when isCollapsedOnResponsive = true, displaySearchFilter = false', () => {
|
|
36
|
+
const specificMockedProps = {
|
|
37
|
+
...mockedProps,
|
|
38
|
+
isCollapsedOnResponsive: true,
|
|
39
|
+
displaySearchFilter: false
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
it('should NOT render form', () => {
|
|
43
|
+
renderComponent(SearchFilter, specificMockedProps);
|
|
44
|
+
expect(screen.queryByRole('form')).not.toBeInTheDocument();
|
|
47
45
|
});
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
isCollapsedOnResponsive: true,
|
|
53
|
-
displaySearchFilter: false
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
it('should NOT render form', () => {
|
|
57
|
-
renderComponent(SearchFilter, specificMockedProps);
|
|
58
|
-
expect(screen.queryByRole('form')).not.toBeInTheDocument();
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('should render the mobile refine button', () => {
|
|
62
|
-
renderComponent(SearchFilter, specificMockedProps);
|
|
63
|
-
expect(screen.queryByTestId('refine-mobile')).toBeInTheDocument();
|
|
64
|
-
});
|
|
47
|
+
it('should render the mobile refine button', () => {
|
|
48
|
+
renderComponent(SearchFilter, specificMockedProps);
|
|
49
|
+
expect(screen.queryByTestId('refine-mobile')).toBeInTheDocument();
|
|
65
50
|
});
|
|
51
|
+
});
|
|
66
52
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
});
|
|
53
|
+
describe('when isCollapsedOnResponsive = false, displaySearchFilter = true', () => {
|
|
54
|
+
const specificMockedProps = {
|
|
55
|
+
...mockedProps,
|
|
56
|
+
isCollapsedOnResponsive: false,
|
|
57
|
+
displaySearchFilter: true
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
it('should NOT render form', () => {
|
|
61
|
+
renderComponent(SearchFilter, specificMockedProps);
|
|
62
|
+
expect(screen.queryByRole('form')).not.toBeInTheDocument();
|
|
78
63
|
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe('when isCollapsedOnResponsive = false, displaySearchFilter = false', () => {
|
|
67
|
+
const specificMockedProps = {
|
|
68
|
+
...mockedProps,
|
|
69
|
+
isCollapsedOnResponsive: false,
|
|
70
|
+
displaySearchFilter: false
|
|
71
|
+
};
|
|
79
72
|
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
isCollapsedOnResponsive: false,
|
|
84
|
-
displaySearchFilter: false
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
it('should render without throwing error and match snapshot', () => {
|
|
88
|
-
const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
|
|
89
|
-
expect(asFragment()).toMatchSnapshot();
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it('should render form', () => {
|
|
93
|
-
renderComponent(SearchFilter, specificMockedProps);
|
|
94
|
-
|
|
95
|
-
const formId = `filter-${specificMockedProps.name}-form`;
|
|
96
|
-
const form = screen.getByTestId(formId);
|
|
97
|
-
expect(form).toBeInTheDocument();
|
|
98
|
-
});
|
|
73
|
+
it('should render without throwing error and match snapshot', () => {
|
|
74
|
+
const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
|
|
75
|
+
expect(asFragment()).toMatchSnapshot();
|
|
99
76
|
});
|
|
100
77
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
it('should render without throwing error and match snapshot', () => {
|
|
109
|
-
const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
|
|
110
|
-
expect(asFragment()).toMatchSnapshot();
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('should render form', () => {
|
|
114
|
-
renderComponent(SearchFilter, specificMockedProps);
|
|
115
|
-
|
|
116
|
-
const formId = `filter-${specificMockedProps.name}-form`;
|
|
117
|
-
const form = screen.getByTestId(formId);
|
|
118
|
-
expect(form).toBeInTheDocument();
|
|
119
|
-
});
|
|
78
|
+
it('should render form', () => {
|
|
79
|
+
renderComponent(SearchFilter, specificMockedProps);
|
|
80
|
+
|
|
81
|
+
const formId = `filter-${specificMockedProps.name}-form`;
|
|
82
|
+
const form = screen.getByTestId(formId);
|
|
83
|
+
expect(form).toBeInTheDocument();
|
|
120
84
|
});
|
|
121
85
|
});
|
|
122
86
|
|
|
123
|
-
describe('when
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
87
|
+
describe('when isCollapsedOnResponsive = true, displaySearchFilter = true', () => {
|
|
88
|
+
const specificMockedProps = {
|
|
89
|
+
...mockedProps,
|
|
90
|
+
isCollapsedOnResponsive: true,
|
|
91
|
+
displaySearchFilter: true
|
|
92
|
+
};
|
|
128
93
|
|
|
129
94
|
it('should render without throwing error and match snapshot', () => {
|
|
130
|
-
const { asFragment } = renderComponent(SearchFilter,
|
|
95
|
+
const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
|
|
131
96
|
expect(asFragment()).toMatchSnapshot();
|
|
132
97
|
});
|
|
133
98
|
|
|
134
99
|
it('should render form', () => {
|
|
135
|
-
renderComponent(SearchFilter,
|
|
100
|
+
renderComponent(SearchFilter, specificMockedProps);
|
|
136
101
|
|
|
137
|
-
const formId = `filter-${
|
|
102
|
+
const formId = `filter-${specificMockedProps.name}-form`;
|
|
138
103
|
const form = screen.getByTestId(formId);
|
|
139
104
|
expect(form).toBeInTheDocument();
|
|
140
105
|
});
|
|
141
106
|
});
|
|
142
107
|
|
|
108
|
+
it('should render without throwing error and match snapshot', () => {
|
|
109
|
+
const { asFragment } = renderComponent(SearchFilter, mockedProps);
|
|
110
|
+
expect(asFragment()).toMatchSnapshot();
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('should render form', () => {
|
|
114
|
+
renderComponent(SearchFilter, mockedProps);
|
|
115
|
+
|
|
116
|
+
const formId = `filter-${mockedProps.name}-form`;
|
|
117
|
+
const form = screen.getByTestId(formId);
|
|
118
|
+
expect(form).toBeInTheDocument();
|
|
119
|
+
});
|
|
120
|
+
|
|
143
121
|
describe('when groupAfterMobile > 0 and groupAfterDesktop = 0', () => {
|
|
144
122
|
const specificMockedProps = {
|
|
145
123
|
...mockedProps,
|