[MNT-25408]: fix activeFilter stream logic (#4957)

* [MNT-25408]: fix activeFilter stream logic

* [MNT-25408]: UTs update
This commit is contained in:
Anton Ramanovich
2026-01-12 08:27:59 +01:00
committed by GitHub
parent 0f0817fe76
commit fef4075e93
2 changed files with 41 additions and 4 deletions
@@ -446,6 +446,40 @@ describe('SearchComponent', () => {
flush();
}));
it('should enable the reset button when userFacetBuckets was reset but queryFragments are still present', fakeAsync(() => {
queryBuilder.userFacetBucketsUpdate.next({ test: [{ label: 'test-value' }] as FacetFieldBucket[] });
queryBuilder.queryFragmentsUpdate.next({ test: 'test-value' });
queryBuilder.userFacetBucketsUpdate.next({});
tick();
fixture.detectChanges();
const resetBtn = getResetSearchButton();
expect(resetBtn).toBeDefined();
expect(resetBtn.getAttribute('disabled')).toBeFalsy();
flush();
}));
it('should enable the reset button when queryFragments was reset but userFacetBuckets are still present', fakeAsync(() => {
queryBuilder.userFacetBucketsUpdate.next({ test: [{ label: 'test-value' }] as FacetFieldBucket[] });
queryBuilder.queryFragmentsUpdate.next({ test: 'test-value' });
queryBuilder.queryFragmentsUpdate.next({});
tick();
fixture.detectChanges();
const resetBtn = getResetSearchButton();
expect(resetBtn).toBeDefined();
expect(resetBtn.getAttribute('disabled')).toBeFalsy();
flush();
}));
});
testHeader(SearchResultsComponent, false);
@@ -84,7 +84,7 @@ import {
formatSearchTerm
} from '../../../utils/aca-search-utils';
import { SaveSearchDirective } from '../search-save/directive/save-search.directive';
import { combineLatest, merge, Observable, of } from 'rxjs';
import { combineLatest, Observable, of } from 'rxjs';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatMenuModule } from '@angular/material/menu';
import { IsFeatureSupportedInCurrentAcsPipe } from '../../../pipes/is-feature-supported.pipe';
@@ -173,10 +173,13 @@ export class SearchResultsComponent extends PageComponent implements OnInit, OnD
this.searchConfig = searchConfig;
});
this.areFiltersActive$ = merge(this.queryBuilder.queryFragmentsUpdate, this.queryBuilder.userFacetBucketsUpdate).pipe(
this.areFiltersActive$ = combineLatest([this.queryBuilder.queryFragmentsUpdate, this.queryBuilder.userFacetBucketsUpdate]).pipe(
takeUntilDestroyed(),
map((v) => {
return Object.values(v).some((filterValue) => (Array.isArray(filterValue) ? filterValue.length > 0 : !!filterValue));
map((filters) => {
const [queryFragments, userFacetBuckets] = filters.map((rawFilter) => {
return Object.values(rawFilter).some((filterValue) => (Array.isArray(filterValue) ? filterValue.length > 0 : !!filterValue));
});
return queryFragments || userFacetBuckets;
})
);
}