@@ -2,9 +2,10 @@ import TableView from './TableView';
22import { render , screen , waitFor } from '@testing-library/react' ;
33import { Provider , useSelector } from 'react-redux' ;
44import configureStore from 'redux-mock-store' ;
5- import { storeListDefaults } from '../../Utilities/constants' ;
5+ import { pageDefaultFilters , storeListDefaults } from '../../Utilities/constants' ;
66import { systemPackages } from '../../Utilities/RawDataForTesting' ;
77import userEvent from '@testing-library/user-event' ;
8+ import '@testing-library/jest-dom' ;
89
910const testObj = {
1011 columns : [ ] ,
@@ -134,6 +135,67 @@ describe('TableView', () => {
134135 expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
135136 } ) ;
136137
138+ it ( 'should keep default filter chips visible while hiding reset at the default state' , ( ) => {
139+ render (
140+ < Provider store = { store } >
141+ < TableView
142+ { ...testObj }
143+ defaultFilters = { pageDefaultFilters . packages }
144+ searchChipLabel = 'Package'
145+ store = { {
146+ rows : [ ] ,
147+ metadata : { total_items : 10 , limit : 20 , offset : 0 } ,
148+ status : { isLoading : false , code : 200 , hasError : false } ,
149+ queryParams : { filter : { systems_applicable : [ 'gt:0' ] } } ,
150+ } }
151+ />
152+ </ Provider > ,
153+ ) ;
154+
155+ expect ( screen . getByText ( 'Systems with patches available' ) ) . toBeInTheDocument ( ) ;
156+ expect ( screen . queryByRole ( 'button' , { name : / r e s e t f i l t e r s / i } ) ) . not . toBeInTheDocument ( ) ;
157+ } ) ;
158+
159+ it ( 'should show a reset button when active filters differ from defaults' , ( ) => {
160+ render (
161+ < Provider store = { store } >
162+ < TableView
163+ { ...testObj }
164+ defaultFilters = { pageDefaultFilters . packages }
165+ searchChipLabel = 'Package'
166+ store = { {
167+ rows : [ ] ,
168+ metadata : { total_items : 10 , limit : 20 , offset : 0 } ,
169+ status : { isLoading : false , code : 200 , hasError : false } ,
170+ queryParams : { filter : { systems_applicable : [ 'eq:0' ] } } ,
171+ } }
172+ />
173+ </ Provider > ,
174+ ) ;
175+
176+ expect ( screen . getByRole ( 'button' , { name : / r e s e t f i l t e r s / i } ) ) . toBeInTheDocument ( ) ;
177+ } ) ;
178+
179+ it ( 'should show a clear button for pages without defaults' , ( ) => {
180+ render (
181+ < Provider store = { store } >
182+ < TableView
183+ { ...testObj }
184+ defaultFilters = { pageDefaultFilters . advisories }
185+ searchChipLabel = 'Advisory'
186+ store = { {
187+ rows : [ ] ,
188+ metadata : { total_items : 10 , limit : 20 , offset : 0 } ,
189+ status : { isLoading : false , code : 200 , hasError : false } ,
190+ queryParams : { filter : { advisory_type_name : 'bugfix' } } ,
191+ } }
192+ />
193+ </ Provider > ,
194+ ) ;
195+
196+ expect ( screen . getByRole ( 'button' , { name : / c l e a r f i l t e r s / i } ) ) . toBeInTheDocument ( ) ;
197+ } ) ;
198+
137199 it ( 'Should unselect' , async ( ) => {
138200 await render (
139201 < Provider store = { store } >
0 commit comments