Skip to content

Commit a3d40c3

Browse files
committed
UISACQCOMP-227 added tests for AcqDateRangeFilter reset
1 parent f231c8c commit a3d40c3

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

lib/AcqDateRangeFilter/AcqDateRangeFilter.test.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
import React from 'react';
2-
import { render, fireEvent } from '@testing-library/react';
2+
import { render, fireEvent, waitFor } from '@testing-library/react';
33
import { noop } from 'lodash';
44

5+
import { nativeChangeFieldValue } from '@folio/stripes/components';
6+
57
import AcqDateRangeFilter from './AcqDateRangeFilter';
68

9+
jest.mock('@folio/stripes/components', () => ({
10+
...jest.requireActual('@folio/stripes-components'),
11+
nativeChangeFieldValue: jest.fn(),
12+
}));
13+
714
const FILTER_LABEL = 'some date filter';
815
const FILTER_NAME = 'some-date-filter';
916

17+
const mockSubscribeOnReset = jest.fn();
18+
1019
const renderFilter = (closedByDefault, onChange = noop, dateFormat) => (render(
1120
<AcqDateRangeFilter
1221
id="some-date-filter"
@@ -15,6 +24,7 @@ const renderFilter = (closedByDefault, onChange = noop, dateFormat) => (render(
1524
closedByDefault={closedByDefault}
1625
onChange={onChange}
1726
dateFormat={dateFormat}
27+
subscribeOnReset={mockSubscribeOnReset}
1828
/>,
1929
));
2030

@@ -32,6 +42,12 @@ describe('AcqDateRangeFilter component', () => {
3242
expect(button.getAttribute('aria-expanded') || 'false').toBe('false');
3343
});
3444

45+
it('should subscribe to reset events', () => {
46+
renderFilter();
47+
48+
expect(mockSubscribeOnReset).toHaveBeenCalled();
49+
});
50+
3551
it('should be opened by default when closedByDefault=false prop is passed', () => {
3652
const { container } = renderFilter(false);
3753
const button = container.querySelector('[id="accordion-toggle-button-some-date-filter"]');
@@ -78,4 +94,26 @@ describe('AcqDateRangeFilter component', () => {
7894

7995
expect(onChangeFilter).toHaveBeenCalled();
8096
});
97+
98+
describe('when reset handler is called', () => {
99+
it('should clear dates', async () => {
100+
const callResetHandler = mockSubscribeOnReset.mockImplementation(cb => {
101+
cb?.();
102+
});
103+
104+
const { getByLabelText } = renderFilter(false, () => {}, 'YYYY-DD-MM');
105+
const fromDate = getByLabelText('stripes-smart-components.dateRange.from');
106+
const toDate = getByLabelText('stripes-smart-components.dateRange.to');
107+
108+
fireEvent.change(fromDate, { target: { value: '2000-01-01' } });
109+
fireEvent.change(toDate, { target: { value: '2020-01-01' } });
110+
111+
expect(fromDate).toHaveValue('2000-01-01');
112+
expect(toDate).toHaveValue('2020-01-01');
113+
114+
callResetHandler();
115+
116+
await waitFor(() => expect(nativeChangeFieldValue).toHaveBeenCalledTimes(2));
117+
});
118+
});
81119
});

0 commit comments

Comments
 (0)