diff --git a/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts b/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts index 8b9a05f8cd..8e1351f239 100644 --- a/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts @@ -168,6 +168,7 @@ describe('SearchHeaderComponent', () => { spyOn(alfrescoApiService.searchApi, 'search').and.returnValue(Promise.resolve(fakeNodePaging)); spyOn(queryBuilder, 'buildQuery').and.returnValue({}); spyOn(component.widgetContainer, 'resetInnerWidget').and.stub(); + spyOn(component, 'isActive').and.returnValue(true); const fakeEvent = jasmine.createSpyObj('event', ['stopPropagation']); component.clear.subscribe(() => { done(); @@ -187,6 +188,7 @@ describe('SearchHeaderComponent', () => { spyOn(queryBuilder, 'isNoFilterActive').and.returnValue(false); spyOn(alfrescoApiService.searchApi, 'search').and.returnValue(Promise.resolve(fakeNodePaging)); spyOn(queryBuilder, 'buildQuery').and.returnValue({}); + spyOn(component, 'isActive').and.returnValue(true); queryBuilder.queryFragments['fake'] = 'test'; spyOn(component.widgetContainer, 'resetInnerWidget').and.callThrough(); const fakeEvent = jasmine.createSpyObj('event', ['stopPropagation']); @@ -209,6 +211,7 @@ describe('SearchHeaderComponent', () => { spyOn(queryBuilder, 'isNoFilterActive').and.returnValue(true); spyOn(alfrescoApiService.searchApi, 'search').and.returnValue(Promise.resolve(fakeNodePaging)); spyOn(queryBuilder, 'buildQuery').and.returnValue({}); + spyOn(component, 'isActive').and.returnValue(true); spyOn(component.widgetContainer, 'resetInnerWidget').and.stub(); component.widgetContainer.componentRef.instance.value = ''; const fakeEvent = jasmine.createSpyObj('event', ['stopPropagation']); @@ -226,6 +229,26 @@ describe('SearchHeaderComponent', () => { await fixture.whenStable(); }); + it('should not emit clear event when currentFolderNodeId changes and no filter was applied', async () => { + const currentFolderNodeIdChange = new SimpleChange('current-node-id', 'next-node-id', true); + spyOn(component, 'isActive').and.returnValue(false); + spyOn(component.clear, 'emit'); + + component.ngOnChanges({ currentFolderNodeId: currentFolderNodeIdChange }); + fixture.detectChanges(); + expect(component.clear.emit).not.toHaveBeenCalled(); + }); + + it('should emit clear event when currentFolderNodeId changes and filter was applied', async () => { + const currentFolderNodeIdChange = new SimpleChange('current-node-id', 'next-node-id', true); + spyOn(component.clear, 'emit'); + spyOn(component, 'isActive').and.returnValue(true); + + component.ngOnChanges({ currentFolderNodeId: currentFolderNodeIdChange }); + fixture.detectChanges(); + expect(component.clear.emit).toHaveBeenCalled(); + }); + describe('Accessibility', () => { it('should set up a focus trap on the filter when the menu is opened', async () => { diff --git a/lib/content-services/src/lib/search/components/search-header/search-header.component.ts b/lib/content-services/src/lib/search/components/search-header/search-header.component.ts index acdf36df33..2a866da459 100644 --- a/lib/content-services/src/lib/search/components/search-header/search-header.component.ts +++ b/lib/content-services/src/lib/search/components/search-header/search-header.component.ts @@ -172,7 +172,7 @@ export class SearchHeaderComponent implements OnInit, OnChanges, OnDestroy { } clearHeader() { - if (this.widgetContainer) { + if (this.widgetContainer && this.isActive()) { this.widgetContainer.resetInnerWidget(); this.searchHeaderQueryBuilder.removeActiveFilter(this.category.columnKey); this.selection.emit(this.searchHeaderQueryBuilder.getActiveFilters());