Issue 2304: applying fix for saved filters cancel navigation issue (#2482)

* Issue 2304: applying fix for saved filters cancel navigation issue

* Addressing unit test warnings

Co-authored-by: Mau Rodriguez Morales <mrodriguezmorales@provectus.com>
Co-authored-by: Kristina Kiparoidze <kkiparoidze@provectus.com>
Co-authored-by: Kris-K-Dev <92114648+Kris-K-Dev@users.noreply.github.com>
This commit is contained in:
Mau Rodríguez Morales 2022-09-13 10:58:19 -06:00 committed by GitHub
parent 38c8a43bc4
commit ee92ea47cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 15 deletions

View file

@ -18,6 +18,8 @@ export interface FilterModalProps {
activeFilterHandler(activeFilter: MessageFilters, index: number): void;
toggleEditModal(): void;
editFilter(value: FilterEdit): void;
isSavedFiltersOpen: boolean;
onClickSavedFilters(newValue: boolean): void;
activeFilter?: MessageFilters;
}
@ -33,10 +35,10 @@ const AddFilter: React.FC<FilterModalProps> = ({
activeFilterHandler,
toggleEditModal,
editFilter,
isSavedFiltersOpen,
onClickSavedFilters,
activeFilter,
}) => {
const [savedFilterState, setSavedFilterState] =
React.useState<boolean>(false);
const { isOpen, toggle } = useModal();
const onSubmit = React.useCallback(
@ -71,12 +73,12 @@ const AddFilter: React.FC<FilterModalProps> = ({
{isOpen && <InfoModal toggleIsOpen={toggle} />}
</div>
</S.FilterTitle>
{savedFilterState ? (
{isSavedFiltersOpen ? (
<SavedFilters
deleteFilter={deleteFilter}
activeFilterHandler={activeFilterHandler}
closeModal={toggleIsOpen}
onGoBack={() => setSavedFilterState(false)}
onGoBack={() => onClickSavedFilters(!onClickSavedFilters)}
filters={filters}
onEdit={(index: number, filter: MessageFilters) => {
toggleEditModal();
@ -87,7 +89,7 @@ const AddFilter: React.FC<FilterModalProps> = ({
) : (
<>
<S.SavedFiltersTextContainer
onClick={() => setSavedFilterState(true)}
onClick={() => onClickSavedFilters(!isSavedFiltersOpen)}
>
<SavedIcon /> <S.SavedFiltersText>Saved Filters</S.SavedFiltersText>
</S.SavedFiltersTextContainer>

View file

@ -29,9 +29,13 @@ const FilterModal: React.FC<FilterModalProps> = ({
activeFilter,
}) => {
const [addFilterModal, setAddFilterModal] = React.useState<boolean>(true);
const [isSavedFiltersOpen, setIsSavedFiltersOpen] =
React.useState<boolean>(false);
const toggleEditModal = () => {
setAddFilterModal(!addFilterModal);
};
const [editFilter, setEditFilter] = React.useState<FilterEdit>({
index: -1,
filter: { name: '', code: '' },
@ -40,6 +44,7 @@ const FilterModal: React.FC<FilterModalProps> = ({
setEditFilter(value);
setAddFilterModal(!addFilterModal);
};
return (
<S.MessageFilterModal data-testid="messageFilterModal">
{addFilterModal ? (
@ -51,6 +56,8 @@ const FilterModal: React.FC<FilterModalProps> = ({
activeFilterHandler={activeFilterHandler}
toggleEditModal={toggleEditModal}
editFilter={editFilterHandler}
isSavedFiltersOpen={isSavedFiltersOpen}
onClickSavedFilters={() => setIsSavedFiltersOpen(!isSavedFiltersOpen)}
activeFilter={activeFilter}
/>
) : (

View file

@ -22,8 +22,10 @@ const renderComponent = (props: Partial<FilterModalProps> = {}) =>
deleteFilter={jest.fn()}
activeFilterHandler={jest.fn()}
toggleEditModal={jest.fn()}
onClickSavedFilters={jest.fn()}
editFilter={editFilterMock}
filters={props.filters || filters}
isSavedFiltersOpen={false}
{...props}
/>
);
@ -38,8 +40,8 @@ describe('AddFilter component', () => {
it('should test click on Saved Filters redirects to Saved components', () => {
userEvent.click(screen.getByRole('savedFilterText'));
expect(screen.getByText('Saved filters')).toBeInTheDocument();
expect(screen.getAllByRole('savedFilter')).toHaveLength(2);
expect(screen.getByText('Saved Filters')).toBeInTheDocument();
expect(screen.getByRole('savedFilterText')).toBeInTheDocument();
});
it('info button to be in the document', () => {
@ -54,16 +56,9 @@ describe('AddFilter component', () => {
).toBeInTheDocument();
});
it('should test click on return to custom filter redirects to Add filters', async () => {
it('should test click on return to custom filter redirects to Saved Filters', async () => {
userEvent.click(screen.getByRole('savedFilterText'));
expect(screen.getByText('Saved filters')).toBeInTheDocument();
expect(screen.queryByRole('savedFilterText')).not.toBeInTheDocument();
expect(screen.getAllByRole('savedFilter')).toHaveLength(2);
await act(() =>
userEvent.click(screen.getByText(/back to custom filters/i))
);
expect(screen.queryByText('Saved filters')).not.toBeInTheDocument();
expect(screen.getByRole('savedFilterText')).toBeInTheDocument();
});
@ -112,6 +107,9 @@ describe('AddFilter component', () => {
});
it('calls editFilter when edit button is clicked in saved filters', async () => {
await act(() => {
renderComponent({ isSavedFiltersOpen: true });
});
userEvent.click(screen.getByText('Saved Filters'));
const index = 0;
const editButton = screen.getAllByText('Edit')[index];