Skip to content

Commit

Permalink
[ACA-4370] Refresh filter counter on filter click (#6873)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidcanonieto committed Mar 29, 2021
1 parent b4fa193 commit afb5847
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/

import { TestBed, async } from '@angular/core/testing';
import { setupTestBed } from '@alfresco/adf-core';
import { AlfrescoApiService, setupTestBed } from '@alfresco/adf-core';
import { ProcessServiceCloudTestingModule } from '../testing/process-service-cloud.testing.module';
import { TranslateModule } from '@ngx-translate/core';
import { NotificationCloudService } from './notification-cloud.service';
Expand All @@ -27,6 +27,7 @@ describe('NotificationCloudService', () => {
let apollo: Apollo;
let apolloCreateSpy;
let apolloSubscribeSpy;
let apiService: AlfrescoApiService;
const useMock = {
subscribe() {}
};
Expand All @@ -42,6 +43,12 @@ describe('NotificationCloudService', () => {
}
`;

const apiServiceMock = {
oauth2Auth: {
token: '1234567'
}
};

setupTestBed({
imports: [
TranslateModule.forRoot(),
Expand All @@ -52,7 +59,9 @@ describe('NotificationCloudService', () => {
beforeEach(async(() => {
service = TestBed.inject(NotificationCloudService);
apollo = TestBed.inject(Apollo);
apiService = TestBed.inject(AlfrescoApiService);

spyOn(apiService, 'getInstance').and.returnValue(apiServiceMock);
service.appsListening = [];
apolloCreateSpy = spyOn(apollo, 'createNamed');
apolloSubscribeSpy = spyOn(apollo, 'use').and.returnValue(useMock);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { WebSocketLink } from '@apollo/client/link/ws';
import { onError } from '@apollo/client/link/error';
import { getMainDefinition } from '@apollo/client/utilities';
import { Injectable } from '@angular/core';
import { StorageService, AppConfigService, AlfrescoApiService } from '@alfresco/adf-core';
import { AppConfigService, AlfrescoApiService } from '@alfresco/adf-core';
import { BaseCloudService } from './base-cloud.service';

@Injectable({
Expand All @@ -35,8 +35,7 @@ export class NotificationCloudService extends BaseCloudService {
constructor(apiService: AlfrescoApiService,
appConfigService: AppConfigService,
public apollo: Apollo,
private http: HttpLink,
private storageService: StorageService) {
private http: HttpLink) {
super(apiService, appConfigService);
}

Expand All @@ -62,7 +61,7 @@ export class NotificationCloudService extends BaseCloudService {
lazy: true,
connectionParams: {
kaInterval: 2000,
'X-Authorization': 'Bearer ' + this.storageService.getItem('access_token')
'X-Authorization': 'Bearer ' + this.apiService.getInstance().oauth2Auth.token
}
}
});
Expand All @@ -85,7 +84,7 @@ export class NotificationCloudService extends BaseCloudService {
operation.setContext({
headers: {
...oldHeaders,
'X-Authorization': 'Bearer ' + this.storageService.getItem('access_token')
'X-Authorization': 'Bearer ' + this.apiService.getInstance().oauth2Auth.token
}
});
forward(operation);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ describe('TaskFiltersCloudComponent', () => {

let component: TaskFiltersCloudComponent;
let fixture: ComponentFixture<TaskFiltersCloudComponent>;
let getTaskFilterCounterSpy;

setupTestBed({
imports: [
Expand All @@ -68,7 +69,7 @@ describe('TaskFiltersCloudComponent', () => {
component = fixture.componentInstance;

taskFilterService = TestBed.inject(TaskFilterCloudService);
spyOn(taskFilterService, 'getTaskFilterCounter').and.returnValue(of(11));
getTaskFilterCounterSpy = spyOn(taskFilterService, 'getTaskFilterCounter').and.returnValue(of(11));
spyOn(taskFilterService, 'getTaskNotificationSubscription').and.returnValue(of(taskNotifications));
});

Expand Down Expand Up @@ -423,4 +424,21 @@ describe('TaskFiltersCloudComponent', () => {
});
});
}));

it('should update filter counter when filter is selected', fakeAsync(() => {
spyOn(taskFilterService, 'getTaskListFilters').and.returnValue(fakeGlobalFilterObservable);
component.appName = 'my-app-1';
component.ngOnInit();
tick(5000);
fixture.detectChanges();
component.showIcons = true;
fixture.whenStable().then(() => {
fixture.detectChanges();
const filterButton = fixture.debugElement.nativeElement.querySelector(`[data-automation-id="${fakeGlobalFilter[0].key}_filter"]`);
filterButton.click();

fixture.detectChanges();
expect(getTaskFilterCounterSpy).toHaveBeenCalledWith(fakeGlobalFilter[0]);
});
}));
});
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,13 @@ export class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent imp
}

updateFilterCounters() {
this.filters.forEach((filter) => {
if (filter.showCounter) {
this.counters$[filter.key] = this.taskFilterCloudService.getTaskFilterCounter(filter);
}
});
this.filters.forEach((filter: TaskFilterCloudModel) => this.updateFilterCounter(filter));
}

updateFilterCounter(filter: TaskFilterCloudModel) {
if (filter?.showCounter) {
this.counters$[filter.key] = this.taskFilterCloudService.getTaskFilterCounter(filter);
}
}

initFilterCounterNotifications() {
Expand Down Expand Up @@ -155,6 +157,7 @@ export class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent imp
public onFilterClick(filter: FilterParamsModel) {
if (filter) {
this.selectFilter(filter);
this.updateFilterCounter(this.currentFilter);
this.filterClicked.emit(this.currentFilter);
} else {
this.currentFilter = undefined;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@ export class TaskFilterCloudService extends BaseCloudService {
const queryParams = {
assignee: taskFilter.assignee,
status: taskFilter.status,
appName: taskFilter.appName
appName: taskFilter.appName,
maxItems: 1
};
return this.get<TaskCloudNodePaging>(queryUrl, queryParams).pipe(
map((tasks) => tasks.list.pagination.totalItems)
Expand Down

0 comments on commit afb5847

Please sign in to comment.