From adb9ba5c09e189973d886a8a312e1f726f610b6f Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Wed, 13 Dec 2023 15:57:49 +0100 Subject: [PATCH] test: filter selection avoid duplicates (#5636) --- .../component/filter/Filters/Filters.test.tsx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/frontend/src/component/filter/Filters/Filters.test.tsx b/frontend/src/component/filter/Filters/Filters.test.tsx index 9dd74d9c96..d42ffbfc3f 100644 --- a/frontend/src/component/filter/Filters/Filters.test.tsx +++ b/frontend/src/component/filter/Filters/Filters.test.tsx @@ -81,3 +81,41 @@ test('should keep filters order when adding a new filter', async () => { expect(filterTexts).toEqual(['Tags', 'State']); }); + +test('should remove selected item from the add filter list', async () => { + const availableFilters: IFilterItem[] = [ + { + label: 'State', + options: [], + filterKey: 'irrelevantKey', + singularOperators: ['IRRELEVANT'], + pluralOperators: ['IRRELEVANT'], + }, + { + label: 'Tags', + options: [], + filterKey: 'irrelevantKey', + singularOperators: ['IRRELEVANT'], + pluralOperators: ['IRRELEVANT'], + }, + ]; + + render( + {}} + state={{}} + />, + ); + + // initial selection list + const addFilterButton = screen.getByText('Add Filter'); + addFilterButton.click(); + expect(screen.getByRole('menu').textContent).toBe('StateTags'); + + screen.getByText('State').click(); + + // reduced selection list + addFilterButton.click(); + expect(screen.getByRole('menu').textContent).toBe('Tags'); +});