mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
Unit test tasklist
This commit is contained in:
parent
421b21017a
commit
16eec259c5
@ -26,28 +26,13 @@ import { ActivitiTaskList } from './activiti-tasklist.component';
|
|||||||
import { ActivitiTaskListService } from '../services/activiti-tasklist.service';
|
import { ActivitiTaskListService } from '../services/activiti-tasklist.service';
|
||||||
import { FilterModel } from '../models/filter.model';
|
import { FilterModel } from '../models/filter.model';
|
||||||
import { Observable } from 'rxjs/Rx';
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
import { ObjectDataRow, DataRowEvent } from 'ng2-alfresco-datatable';
|
||||||
|
|
||||||
|
|
||||||
describe('ActivitiTaskList', () => {
|
describe('ActivitiTaskList', () => {
|
||||||
|
|
||||||
let taskList: 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 = {
|
let fakeGlobalTask = {
|
||||||
size: 1, total: 12, start: 0,
|
size: 1, total: 12, start: 0,
|
||||||
data: [
|
data: [
|
||||||
@ -66,39 +51,54 @@ describe('ActivitiTaskList', () => {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
let fakeErrorTaskList = {
|
|
||||||
error: 'wrong request'
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
let fakeGlobalTaskPromise = new Promise(function (resolve, reject) {
|
let fakeGlobalTaskPromise = new Promise(function (resolve, reject) {
|
||||||
resolve(fakeGlobalTask);
|
resolve(fakeGlobalTask);
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
let fakeErrorTaskList = {
|
||||||
|
error: 'wrong request'
|
||||||
let fakeGlobalFilterPromise = new Promise(function (resolve, reject) {
|
};
|
||||||
resolve(fakeGlobalFilter);
|
|
||||||
});
|
|
||||||
|
|
||||||
let fakeErrorTaskPromise = new Promise(function (resolve, reject) {
|
let fakeErrorTaskPromise = new Promise(function (resolve, reject) {
|
||||||
reject(fakeErrorTaskList);
|
reject(fakeErrorTaskList);
|
||||||
});*/
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
let activitiSerevice = new ActivitiTaskListService(null, null);
|
let activitiSerevice = new ActivitiTaskListService(null, null);
|
||||||
taskList = new ActivitiTaskList(null, null, activitiSerevice);
|
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, '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.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.tasks).toBeDefined();
|
||||||
|
expect(taskList.isTaskListEmpty()).not.toBeTruthy();
|
||||||
expect(taskList.tasks.getRows().length).toEqual(2);
|
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()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...');
|
||||||
expect(taskList.tasks.getRows()[1].getValue('name')).toEqual('Nameless task');
|
expect(taskList.tasks.getRows()[1].getValue('name')).toEqual('Nameless task');
|
||||||
@ -108,78 +108,31 @@ describe('ActivitiTaskList', () => {
|
|||||||
taskList.ngOnInit();
|
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) => {
|
it('should throw an exception when the response is wrong', (done) => {
|
||||||
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise));
|
spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise));
|
||||||
spyOn(taskList.activiti, 'getTaskListFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
|
taskList.taskFilter = new FilterModel('name', false, 'icon', '', 'open', 'fake-assignee');
|
||||||
taskList.ngOnInit();
|
|
||||||
|
|
||||||
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
|
taskList.onError.subscribe( (err) => {
|
||||||
taskList.selectFilter(filterModel);
|
|
||||||
|
|
||||||
taskList.activiti.getTasks(filterModel).subscribe(
|
|
||||||
(res) => {
|
|
||||||
expect(res).toBeUndefined();
|
|
||||||
},
|
|
||||||
(err: any) => {
|
|
||||||
expect(err).toBeDefined();
|
expect(err).toBeDefined();
|
||||||
expect(err.error).toEqual('wrong request');
|
expect(err).toEqual('Error to load a tasks list');
|
||||||
done();
|
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();
|
taskList.ngOnInit();
|
||||||
|
});
|
||||||
|
|
||||||
let filterModel: FilterModel = new FilterModel('name', false, 'icon', 'open', 'fake-assignee');
|
it('should emit row click event', (done) => {
|
||||||
taskList.selectFilter(filterModel);
|
let row = new ObjectDataRow({
|
||||||
|
id: 999
|
||||||
|
});
|
||||||
|
let rowEvent = <DataRowEvent> {value: row};
|
||||||
|
|
||||||
taskList.activiti.getTasks(filterModel).subscribe(
|
taskList.rowClick.subscribe(taskId => {
|
||||||
(res) => {
|
expect(taskId).toEqual(999);
|
||||||
expect(res.data[0].name).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...');
|
|
||||||
expect(res.data[1].name).toEqual('Nameless task');
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
taskList.onRowClick(rowEvent);
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -52,6 +52,9 @@ export class ActivitiTaskList implements OnInit {
|
|||||||
@Output()
|
@Output()
|
||||||
onSuccess: EventEmitter<string> = new EventEmitter<string>();
|
onSuccess: EventEmitter<string> = new EventEmitter<string>();
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
onError: EventEmitter<string> = new EventEmitter<string>();
|
||||||
|
|
||||||
data: DataTableAdapter;
|
data: DataTableAdapter;
|
||||||
|
|
||||||
tasks: ObjectDataTableAdapter;
|
tasks: ObjectDataTableAdapter;
|
||||||
@ -90,6 +93,7 @@ export class ActivitiTaskList implements OnInit {
|
|||||||
this.onSuccess.emit('Task List loaded');
|
this.onSuccess.emit('Task List loaded');
|
||||||
}, (err) => {
|
}, (err) => {
|
||||||
console.error(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}
|
* @returns {ObjectDataTableAdapter|boolean}
|
||||||
*/
|
*/
|
||||||
isTaskListEmpty(): 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user