@@ -9,6 +9,11 @@ import MetadataViewContainer, {
99 type ExternalFilterValues ,
1010} from '../MetadataViewContainer' ;
1111
12+ Object . defineProperty ( Element . prototype , 'scrollTo' , {
13+ value : jest . fn ( ) ,
14+ writable : true ,
15+ } ) ;
16+
1217describe ( 'elements/content-explorer/MetadataViewContainer' , ( ) => {
1318 const mockItems = [
1419 {
@@ -105,7 +110,10 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
105110 return render ( < MetadataViewContainer { ...defaultProps } { ...props } /> ) ;
106111 } ;
107112
113+ let user ;
114+
108115 beforeEach ( ( ) => {
116+ user = userEvent ( ) ;
109117 jest . clearAllMocks ( ) ;
110118 } ) ;
111119
@@ -144,11 +152,11 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
144152 onMetadataFilter : jest . fn ( ) ,
145153 } ) ;
146154
147- await userEvent ( ) . click ( screen . getByRole ( 'button' , { name : / C o n t a c t R o l e / } ) ) ;
148- await userEvent ( ) . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Developer' } ) ) ;
155+ await user . click ( screen . getByRole ( 'button' , { name : / C o n t a c t R o l e / } ) ) ;
156+ await user . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Developer' } ) ) ;
149157 // Re-open the chip to select a second value (menu closes after submit)
150- await userEvent ( ) . click ( screen . getByRole ( 'button' , { name : / C o n t a c t R o l e / } ) ) ;
151- await userEvent ( ) . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Marketing' } ) ) ;
158+ await user . click ( screen . getByRole ( 'button' , { name : / C o n t a c t R o l e / } ) ) ;
159+ await user . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Marketing' } ) ) ;
152160
153161 await waitFor ( ( ) => expect ( onFilterSubmit ) . toHaveBeenCalledTimes ( 2 ) ) ;
154162 const firstCall = onFilterSubmit . mock . calls [ 0 ] [ 0 ] ;
@@ -183,8 +191,8 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
183191 onMetadataFilter,
184192 } ) ;
185193
186- await userEvent ( ) . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
187- await userEvent ( ) . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
194+ await user . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
195+ await user . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
188196
189197 await waitFor ( ( ) => {
190198 expect ( onMetadataFilter ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -221,8 +229,8 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
221229 onMetadataFilter,
222230 } ) ;
223231
224- await userEvent ( ) . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
225- await userEvent ( ) . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
232+ await user . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
233+ await user . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
226234
227235 await waitFor ( ( ) => {
228236 expect ( onMetadataFilter ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -382,8 +390,8 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
382390 } ) ;
383391
384392 // Test enum filter
385- await userEvent ( ) . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
386- await userEvent ( ) . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
393+ await user . click ( screen . getByRole ( 'button' , { name : / S t a t u s / } ) ) ;
394+ await user . click ( within ( screen . getByRole ( 'menu' ) ) . getByRole ( 'menuitemcheckbox' , { name : 'Active' } ) ) ;
387395
388396 await waitFor ( ( ) => {
389397 expect ( onMetadataFilter ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -519,4 +527,23 @@ describe('elements/content-explorer/MetadataViewContainer', () => {
519527 expect ( result [ 'category-filter' ] . fieldType ) . toBe ( 'multiSelect' ) ;
520528 } ) ;
521529 } ) ;
530+
531+ describe ( 'predefined filter options' , ( ) => {
532+ test ( 'should only show metadata template filters in sidepanel' , async ( ) => {
533+ renderComponent ( ) ;
534+
535+ expect ( screen . getByRole ( 'button' , { name : 'All Filters' } ) ) . toBeInTheDocument ( ) ;
536+
537+ await user . click ( screen . getByRole ( 'button' , { name : 'All Filters' } ) ) ;
538+ expect ( screen . getByRole ( 'dialog' ) ) . toBeInTheDocument ( ) ;
539+
540+ expect ( within ( screen . getByRole ( 'dialog' ) ) . getByRole ( 'button' , { name : 'File Type' } ) ) . toBeInTheDocument ( ) ;
541+
542+ // Should NOT show predefined filters that are disabled
543+ expect ( within ( screen . getByRole ( 'dialog' ) ) . queryByPlaceholderText ( 'Enter keywords' ) ) . not . toBeInTheDocument ( ) ;
544+ expect (
545+ within ( screen . getByRole ( 'dialog' ) ) . queryByRole ( 'button' , { name : / l o c a t i o n / i } ) ,
546+ ) . not . toBeInTheDocument ( ) ;
547+ } ) ;
548+ } ) ;
522549} ) ;
0 commit comments