diff --git a/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.spec.ts b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.spec.ts index 9dbd29c433..1dec96ddc5 100644 --- a/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.spec.ts @@ -74,6 +74,7 @@ describe('SearchFilterContainerComponent', () => { }); afterEach(() => { + queryBuilder.removeActiveFilter(mockCategory.columnKey); fixture.destroy(); }); @@ -150,6 +151,32 @@ describe('SearchFilterContainerComponent', () => { expect(eventRaised).toBe(true); }); + it('should hide the red dot after the filter is cleared', async () => { + const badge: HTMLElement = fixture.nativeElement.querySelector(`[data-automation-id="filter-menu-button"] .mat-badge-content`); + expect(window.getComputedStyle(badge).display).toBe('none'); + + const menuButton: HTMLButtonElement = fixture.nativeElement.querySelector('[data-automation-id="filter-menu-button"]'); + menuButton.click(); + fixture.detectChanges(); + await fixture.whenStable(); + component.widgetContainer.componentRef.instance.value = 'searchText'; + const widgetContainer = fixture.debugElement.query(By.css('adf-search-widget-container')); + widgetContainer.triggerEventHandler('keypress', {key: 'Enter'}); + fixture.detectChanges(); + await fixture.whenStable(); + expect(window.getComputedStyle(badge).display).not.toBe('none'); + + menuButton.click(); + fixture.detectChanges(); + await fixture.whenStable(); + const fakeEvent = jasmine.createSpyObj('event', ['stopPropagation']); + const clearButton = fixture.debugElement.query(By.css('#clear-filter-button')); + clearButton.triggerEventHandler('click', fakeEvent); + fixture.detectChanges(); + await fixture.whenStable(); + expect(window.getComputedStyle(badge).display).toBe('none'); + }); + 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-filter-container/search-filter-container.component.ts b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts index 02318992cf..d178fe21a6 100644 --- a/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts +++ b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts @@ -35,6 +35,7 @@ import { SearchCategory } from '../../models/search-category.interface'; import { SEARCH_QUERY_SERVICE_TOKEN } from '../../search-query-service.token'; import { Subject } from 'rxjs'; import { MatMenuTrigger } from '@angular/material/menu'; +import { FilterSearch } from '../../models/filter-search.interface'; @Component({ selector: 'adf-search-filter-container', @@ -119,7 +120,7 @@ export class SearchFilterContainerComponent implements OnInit, OnDestroy { } isActive(): boolean { - return this.widgetContainer && this.widgetContainer.componentRef && this.widgetContainer.componentRef.instance.isActive; + return this.searchFilterQueryBuilder.getActiveFilters().findIndex((f: FilterSearch) => f.key === this.category.columnKey) > -1; } onMenuOpen() {