From f844b0d65fcd1591bf7e034373aac70e607334f7 Mon Sep 17 00:00:00 2001 From: mauriziovitale84 Date: Mon, 14 Nov 2016 17:21:57 +0000 Subject: [PATCH] #987 fix unit test --- .../activiti-tasklist.component.spec.ts | 157 +++++++++++------- 1 file changed, 100 insertions(+), 57 deletions(-) diff --git a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts index bb7bfed213..7f0ab7c960 100644 --- a/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts +++ b/ng2-components/ng2-activiti-tasklist/src/components/activiti-tasklist.component.spec.ts @@ -15,17 +15,17 @@ * limitations under the License. */ -import { SimpleChange } from '@angular/core'; +import { ComponentFixture, TestBed, async } from '@angular/core/testing'; +import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core'; +import { DataTableModule } from 'ng2-alfresco-datatable'; import { ActivitiTaskList } from './activiti-tasklist.component'; -import { ActivitiTaskListService } from '../services/activiti-tasklist.service'; -import { FilterRepresentationModel } from '../models/filter.model'; import { Observable } from 'rxjs/Rx'; import { ObjectDataRow, DataRowEvent, ObjectDataTableAdapter } from 'ng2-alfresco-datatable'; +import { TranslationMock } from './../assets/translation.service.mock'; +import { ActivitiTaskListService } from '../services/activiti-tasklist.service'; describe('ActivitiTaskList', () => { - let taskList: ActivitiTaskList; - let fakeGlobalTask = { size: 2, total: 2, start: 0, data: [ @@ -65,86 +65,114 @@ describe('ActivitiTaskList', () => { reject(fakeErrorTaskList); }); + let componentHandler: any; + let component: ActivitiTaskList; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ + CoreModule, + DataTableModule + ], + declarations: [ + ActivitiTaskList + ], + providers: [ + { provide: AlfrescoTranslationService, useClass: TranslationMock }, + ActivitiTaskListService + ] + }).compileComponents(); + })); + beforeEach(() => { - let activitiSerevice = new ActivitiTaskListService(null); - taskList = new ActivitiTaskList(null, activitiSerevice); + + fixture = TestBed.createComponent(ActivitiTaskList); + component = fixture.componentInstance; + + componentHandler = jasmine.createSpyObj('componentHandler', [ + 'upgradeAllRegistered', + 'upgradeElement' + ]); + window['componentHandler'] = componentHandler; }); it('should use the default schemaColumn as default', () => { - taskList.ngOnInit(); - expect(taskList.data.getColumns()).toBeDefined(); - expect(taskList.data.getColumns().length).toEqual(4); + component.ngOnInit(); + expect(component.data.getColumns()).toBeDefined(); + expect(component.data.getColumns().length).toEqual(4); }); it('should use the schemaColumn passed in input', () => { - taskList.data = new ObjectDataTableAdapter( + component.data = new ObjectDataTableAdapter( [], [ {type: 'text', key: 'fake-id', title: 'Name'} ] ); - taskList.ngOnInit(); - expect(taskList.data.getColumns()).toBeDefined(); - expect(taskList.data.getColumns().length).toEqual(1); + component.ngOnInit(); + expect(component.data.getColumns()).toBeDefined(); + expect(component.data.getColumns().length).toEqual(1); }); - it('should return an empty task list when the taskFilter is not passed', () => { - taskList.ngOnInit(); - expect(taskList.data).toBeDefined(); - expect(taskList.isTaskListEmpty()).toBeTruthy(); + it('should return an empty task list when no input parameters are passed', () => { + component.ngOnInit(); + expect(component.data).toBeDefined(); + expect(component.isTaskListEmpty()).toBeTruthy(); }); - it('should return the filtered task list when the taskFilter is passed', (done) => { - spyOn(taskList.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); - spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); - taskList.taskFilter = new FilterRepresentationModel({filter: { state: 'open', assignment: 'fake-assignee'}}); - - taskList.onSuccess.subscribe( (res) => { + it('should return the filtered task list when the input parameters are passed', (done) => { + spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); + spyOn(component.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); + component.state = 'open'; + component.assignment = 'fake-assignee'; + component.onSuccess.subscribe( (res) => { expect(res).toBeDefined(); - expect(taskList.data).toBeDefined(); - expect(taskList.isTaskListEmpty()).not.toBeTruthy(); - expect(taskList.data.getRows().length).toEqual(2); - expect(taskList.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); - expect(taskList.data.getRows()[1].getValue('name')).toEqual('Nameless task'); + expect(component.data).toBeDefined(); + expect(component.isTaskListEmpty()).not.toBeTruthy(); + expect(component.data.getRows().length).toEqual(2); + expect(component.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); + expect(component.data.getRows()[1].getValue('name')).toEqual('Nameless task'); done(); }); - taskList.ngOnInit(); + component.ngOnInit(); }); it('should return a currentId null when the taskList is empty', () => { - taskList.selectFirstTask(); - expect(taskList.getCurrentTaskId()).toBeNull(); + component.selectFirstTask(); + expect(component.getCurrentTaskId()).toBeNull(); }); it('should throw an exception when the response is wrong', (done) => { - spyOn(taskList.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise)); - taskList.taskFilter = new FilterRepresentationModel({filter: { state: 'open', assignment: 'fake-assignee'}}); - - taskList.onError.subscribe( (err) => { + spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeErrorTaskPromise)); + component.state = 'open'; + component.assignment = 'fake-assignee'; + component.onError.subscribe( (err) => { expect(err).toBeDefined(); done(); }); - taskList.ngOnInit(); + component.ngOnInit(); }); it('should reload tasks when reload() is called', (done) => { - spyOn(taskList.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); - spyOn(taskList.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); - taskList.taskFilter = new FilterRepresentationModel({filter: { state: 'open', assignment: 'fake-assignee'}}); - taskList.ngOnInit(); - taskList.onSuccess.subscribe( (res) => { + spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); + spyOn(component.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); + component.state = 'open'; + component.assignment = 'fake-assignee'; + component.ngOnInit(); + component.onSuccess.subscribe( (res) => { expect(res).toBeDefined(); - expect(taskList.data).toBeDefined(); - expect(taskList.isTaskListEmpty()).not.toBeTruthy(); - expect(taskList.data.getRows().length).toEqual(2); - expect(taskList.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); - expect(taskList.data.getRows()[1].getValue('name')).toEqual('Nameless task'); + expect(component.data).toBeDefined(); + expect(component.isTaskListEmpty()).not.toBeTruthy(); + expect(component.data.getRows().length).toEqual(2); + expect(component.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); + expect(component.data.getRows()[1].getValue('name')).toEqual('Nameless task'); done(); }); - taskList.reload(); + component.reload(); }); it('should emit row click event', (done) => { @@ -153,23 +181,38 @@ describe('ActivitiTaskList', () => { }); let rowEvent = {value: row}; - taskList.rowClick.subscribe(taskId => { + component.rowClick.subscribe(taskId => { expect(taskId).toEqual(999); - expect(taskList.getCurrentTaskId()).toEqual(999); + expect(component.getCurrentTaskId()).toEqual(999); done(); }); - taskList.onRowClick(rowEvent); + component.onRowClick(rowEvent); }); - it('should reload task list by filter on binding changes', () => { - spyOn(taskList, 'load').and.stub(); - const taskFilter = new FilterRepresentationModel({filter: { state: 'open', assignment: 'fake-assignee'}}); + it('should reload the task list when the input parameters changes', (done) => { + spyOn(component.activiti, 'getTotalTasks').and.returnValue(Observable.fromPromise(fakeGlobalTotalTasksPromise)); + spyOn(component.activiti, 'getTasks').and.returnValue(Observable.fromPromise(fakeGlobalTaskPromise)); - let change = new SimpleChange(null, taskFilter); - taskList.ngOnChanges({ 'taskFilter': change }); + component.data = new ObjectDataTableAdapter( + [], + [ + {type: 'text', key: 'fake-id', title: 'Name'} + ] + ); + component.state = 'open'; + component.assignment = 'fake-assignee'; + component.onSuccess.subscribe( (res) => { + expect(res).toBeDefined(); + expect(component.data).toBeDefined(); + expect(component.isTaskListEmpty()).not.toBeTruthy(); + expect(component.data.getRows().length).toEqual(2); + expect(component.data.getRows()[0].getValue('name')).toEqual('fake-long-name-fake-long-name-fake-long-name-fak50...'); + expect(component.data.getRows()[1].getValue('name')).toEqual('Nameless task'); + done(); + }); - expect(taskList.load).toHaveBeenCalled(); + component.ngOnChanges({}); }); });