mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[AAE-5835] Add unit test to check is selected Process/Task filter highlighting (#7474)
* [AAE-5835] Automate the manual test: Process default filters * My empty commit to start travis job
This commit is contained in:
@@ -289,4 +289,75 @@ describe('ProcessFiltersCloudComponent', () => {
|
|||||||
component.selectFilter({ id: filter.id });
|
component.selectFilter({ id: filter.id });
|
||||||
expect(component.getCurrentFilter()).toBe(filter);
|
expect(component.getCurrentFilter()).toBe(filter);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Highlight Selected Filter', () => {
|
||||||
|
|
||||||
|
const allProcessesFilterKey = mockProcessFilters[0].key;
|
||||||
|
const runningProcessesFilterKey = mockProcessFilters[1].key;
|
||||||
|
const completedProcessesFilterKey = mockProcessFilters[2].key;
|
||||||
|
|
||||||
|
function getActiveFilterElement(filterKey: string): Element {
|
||||||
|
const activeFilter = fixture.debugElement.query(By.css(`.adf-active`));
|
||||||
|
return activeFilter.nativeElement.querySelector(`[data-automation-id="${filterKey}_filter"]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function clickOnFilter(filterKey: string) {
|
||||||
|
fixture.debugElement.nativeElement.querySelector(`[data-automation-id="${filterKey}_filter"]`).click();
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
}
|
||||||
|
|
||||||
|
it('should apply active CSS class on filter click', async () => {
|
||||||
|
component.appName = 'mock-app-name';
|
||||||
|
const appNameChange = new SimpleChange(null, 'mock-app-name', true);
|
||||||
|
component.ngOnChanges({ 'appName': appNameChange });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
await clickOnFilter(allProcessesFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
await clickOnFilter(runningProcessesFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
await clickOnFilter(completedProcessesFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should apply active CSS class when filterParam input changed', async () => {
|
||||||
|
fixture.detectChanges();
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: allProcessesFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: runningProcessesFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: completedProcessesFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(allProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(runningProcessesFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedProcessesFilterKey)).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -26,7 +26,7 @@ import { TaskFiltersCloudComponent } from './task-filters-cloud.component';
|
|||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
|
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
|
||||||
import { TaskFiltersCloudModule } from '../task-filters-cloud.module';
|
import { TaskFiltersCloudModule } from '../task-filters-cloud.module';
|
||||||
import { fakeGlobalFilter, taskNotifications } from '../mock/task-filters-cloud.mock';
|
import { fakeGlobalFilter, taskNotifications, defaultTaskFiltersMock } from '../mock/task-filters-cloud.mock';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
|
||||||
describe('TaskFiltersCloudComponent', () => {
|
describe('TaskFiltersCloudComponent', () => {
|
||||||
@@ -356,4 +356,78 @@ describe('TaskFiltersCloudComponent', () => {
|
|||||||
expect(getTaskFilterCounterSpy).toHaveBeenCalledWith(fakeGlobalFilter[0]);
|
expect(getTaskFilterCounterSpy).toHaveBeenCalledWith(fakeGlobalFilter[0]);
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
describe('Highlight Selected Filter', () => {
|
||||||
|
|
||||||
|
const assignedTasksFilterKey = defaultTaskFiltersMock[1].key;
|
||||||
|
const queuedTasksFilterKey = defaultTaskFiltersMock[0].key;
|
||||||
|
const completedTasksFilterKey = defaultTaskFiltersMock[2].key;
|
||||||
|
|
||||||
|
function getActiveFilterElement(filterKey: string): Element {
|
||||||
|
const activeFilter = fixture.debugElement.query(By.css(`.adf-active`));
|
||||||
|
return activeFilter.nativeElement.querySelector(`[data-automation-id="${filterKey}_filter"]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function clickOnFilter(filterKey: string) {
|
||||||
|
fixture.debugElement.nativeElement.querySelector(`[data-automation-id="${filterKey}_filter"]`).click();
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
}
|
||||||
|
|
||||||
|
it('Should highlight task filter on filter click', async () => {
|
||||||
|
getTaskListFiltersSpy.and.returnValue(of(defaultTaskFiltersMock));
|
||||||
|
component.appName = 'mock-app-name';
|
||||||
|
const appNameChange = new SimpleChange(null, 'mock-app-name', true);
|
||||||
|
component.ngOnChanges({ 'appName': appNameChange });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
await clickOnFilter(assignedTasksFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
await clickOnFilter(queuedTasksFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
await clickOnFilter(completedTasksFilterKey);
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should highlight task filter when filterParam input changed', async () => {
|
||||||
|
getTaskListFiltersSpy.and.returnValue(of(defaultTaskFiltersMock));
|
||||||
|
fixture.detectChanges();
|
||||||
|
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: assignedTasksFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: queuedTasksFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeDefined();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeNull();
|
||||||
|
|
||||||
|
component.ngOnChanges({ 'filterParam': new SimpleChange(null, { key: completedTasksFilterKey }, true) });
|
||||||
|
fixture.detectChanges();
|
||||||
|
await fixture.whenStable();
|
||||||
|
|
||||||
|
expect(getActiveFilterElement(assignedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(queuedTasksFilterKey)).toBeNull();
|
||||||
|
expect(getActiveFilterElement(completedTasksFilterKey)).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -287,3 +287,36 @@ export const taskCloudEngineEventsMock = {
|
|||||||
engineEvents: taskNotifications
|
engineEvents: taskNotifications
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const defaultTaskFiltersMock = [
|
||||||
|
{
|
||||||
|
name: 'CREATED_TASK_FILTER',
|
||||||
|
id: '1',
|
||||||
|
key: 'created',
|
||||||
|
icon: 'adjust',
|
||||||
|
appName: 'fakeAppName',
|
||||||
|
sort: 'startDate',
|
||||||
|
status: 'CREATED',
|
||||||
|
order: 'DESC'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ASSIGNED_TASK_FILTER',
|
||||||
|
id: '2',
|
||||||
|
key: 'assigned',
|
||||||
|
icon: 'adjust',
|
||||||
|
appName: 'fakeAppName',
|
||||||
|
sort: 'startDate',
|
||||||
|
status: 'ASSIGNED',
|
||||||
|
order: 'DESC'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'COMPLETED_TASK_FILTER',
|
||||||
|
id: '3',
|
||||||
|
key: 'complete-fake-task',
|
||||||
|
icon: 'adjust',
|
||||||
|
appName: 'fakeAppName',
|
||||||
|
sort: 'startDate',
|
||||||
|
status: 'COMPLETED',
|
||||||
|
order: 'DESC'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
Reference in New Issue
Block a user