Unit test tasklist

This commit is contained in:
mauriziovitale84 2016-07-29 11:12:28 +01:00
parent 421b21017a
commit 16eec259c5
2 changed files with 55 additions and 98 deletions

View File

@ -26,28 +26,13 @@ import { ActivitiTaskList } from './activiti-tasklist.component';
import { ActivitiTaskListService } from '../services/activiti-tasklist.service';
import { FilterModel } from '../models/filter.model';
import { Observable } from 'rxjs/Rx';
import { ObjectDataRow, DataRowEvent } from 'ng2-alfresco-datatable';
describe('ActivitiTaskList', () => {
let taskList: ActivitiTaskList;
/*
let fakeGlobalFilter = {
size: 2, total: 2, start: 0,
data: [
{
id: 1, name: 'FakeInvolvedTasks', recent: false, icon: 'glyphicon-align-left',
filter: {sort: 'created-desc', name: '', state: 'open', assignment: 'fake-involved'}
},
{
id: 2, name: 'FakeMyTasks', recent: false, icon: 'glyphicon-align-left',
filter: {sort: 'created-desc', name: '', state: 'open', assignment: 'fake-assignee'}
}
]
};
*/
let fakeGlobalTask = {
size: 1, total: 12, start: 0,
data: [
@ -66,39 +51,54 @@ describe('ActivitiTaskList', () => {
]
};
/*
let fakeErrorTaskList = {
error: 'wrong request'
};
*/
let fakeGlobalTaskPromise = new Promise(function (resolve, reject) {
resolve(fakeGlobalTask);
});
/*
let fakeGlobalFilterPromise = new Promise(function (resolve, reject) {
resolve(fakeGlobalFilter);
});
let fakeErrorTaskList = {
error: 'wrong request'
};
let fakeErrorTaskPromise = new Promise(function (resolve, reject) {
reject(fakeErrorTaskList);
});*/
});
beforeEach(() => {
let activitiSerevice = new ActivitiTaskListService(null, null);
taskList = new ActivitiTaskList(null, null, activitiSerevice);
});
it('should return the task list when the taskFilter is passed', (done) => {
it('should use the default schemaColumn as default', () => {
taskList.ngOnInit();
expect(taskList.schemaColumn).toBeDefined();
expect(taskList.schemaColumn.length).toEqual(4);
});
it('should use the schemaColumn passed in input', () => {
taskList.schemaColumn = [
{type: 'text', key: 'fake-id', title: 'Name'}
];
taskList.ngOnInit();
expect(taskList.schemaColumn).toBeDefined();
expect(taskList.schemaColumn.length).toEqual(1);
});
it('should return an empty task list when the taskFilter is not passed', () => {
taskList.ngOnInit();
expect(taskList.tasks).toBeUndefined();
expect(taskList.isTaskListEmpty()).toBeTruthy();
});
it('should return the filtered task list when the taskFilter is passed', (done) => {
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise));
// spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
taskList.onSuccess.subscribe( () => {
taskList.onSuccess.subscribe( (res) => {
expect(res).toBeDefined();
expect(res).toEqual('Task List loaded');
expect(taskList.tasks).toBeDefined();
expect(taskList.isTaskListEmpty()).not.toBeTruthy();
expect(taskList.tasks.getRows().length).toEqual(2);
expect(taskList.tasks.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...');
expect(taskList.tasks.getRows()[1].getValue('name')).toEqual('Nameless task');
@ -108,78 +108,31 @@ describe('ActivitiTaskList', () => {
taskList.ngOnInit();
});
/*
it('should return the default filters', (done) => {
spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
taskList.ngOnInit();
taskList.filtersList.subscribe((res: any) => {
expect(res).toBeDefined();
expect(res.length).toEqual(2);
expect(res[0].name).toEqual('FakeInvolvedTasks');
expect(res[1].name).toEqual('FakeMyTasks');
done();
});
});
it('should subscribe to Filter when a filter is selected', (done) => {
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
taskList.filter$.subscribe((filter: FilterModel) => {
expect(filter).toBe(filterModel);
done();
});
taskList.selectFilter(filterModel);
});
it('should return the tasks when a filter is selected', (done) => {
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise));
spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
taskList.ngOnInit();
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
taskList.selectFilter(filterModel);
taskList.activiti.getTasks(filterModel).subscribe(
(res) => {
expect(res).toBeDefined();
done();
});
});
it('should throw an exception when the response is wrong', (done) => {
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise));
spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
taskList.ngOnInit();
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
taskList.selectFilter(filterModel);
taskList.activiti.getTasks(filterModel).subscribe(
(res) => {
expect(res).toBeUndefined();
},
(err: any) => {
taskList.onError.subscribe( (err) => {
expect(err).toBeDefined();
expect(err.error).toEqual('wrong request');
expect(err).toEqual('Error to load a tasks list');
done();
});
});
it('should optimize the task name when are empty or exceed 50 characters', (done) => {
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise));
spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
taskList.ngOnInit();
});
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
taskList.selectFilter(filterModel);
it('should emit row click event', (done) => {
let row = new ObjectDataRow({
id: 999
});
let rowEvent = <DataRowEvent> {value: row};
taskList.activiti.getTasks(filterModel).subscribe(
(res) => {
expect(res.data[0].name).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...');
expect(res.data[1].name).toEqual('Nameless task');
taskList.rowClick.subscribe(taskId => {
expect(taskId).toEqual(999);
done();
});
taskList.onRowClick(rowEvent);
});
*/
});

View File

@ -52,6 +52,9 @@ export class ActivitiTaskList implements OnInit {
@Output()
onSuccess: EventEmitter<string> = new EventEmitter<string>();
@Output()
onError: EventEmitter<string> = new EventEmitter<string>();
data: DataTableAdapter;
tasks: ObjectDataTableAdapter;
@ -90,6 +93,7 @@ export class ActivitiTaskList implements OnInit {
this.onSuccess.emit('Task List loaded');
}, (err) => {
console.error(err);
this.onError.emit('Error to load a tasks list');
});
}
@ -107,7 +111,7 @@ export class ActivitiTaskList implements OnInit {
* @returns {ObjectDataTableAdapter|boolean}
*/
isTaskListEmpty(): boolean {
return this.tasks && this.tasks.getRows().length === 0;
return this.tasks === undefined || (this.tasks && this.tasks.getRows() && this.tasks.getRows().length === 0);
}
/**