#1301 - fix test for widgetvisibility service

This commit is contained in:
Vito Albano 2016-12-16 15:47:37 +00:00
parent e92abf99d9
commit ad1f3e8102
4 changed files with 50 additions and 42 deletions

View File

@ -15,8 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { HttpModule } from '@angular/http'; import { ReflectiveInjector } from '@angular/core';
import { TestBed } from '@angular/core/testing';
import { import {
formTest, formTest,
fakeTaskProcessVariableModels, fakeTaskProcessVariableModels,
@ -24,31 +23,36 @@ import {
fakeFormJson fakeFormJson
} from './assets/widget-visibility.service.mock'; } from './assets/widget-visibility.service.mock';
import { WidgetVisibilityService } from './widget-visibility.service'; import { WidgetVisibilityService } from './widget-visibility.service';
import { CoreModule } from 'ng2-alfresco-core'; import {
AlfrescoAuthenticationService,
AlfrescoSettingsService,
AlfrescoApiService,
StorageService
} from 'ng2-alfresco-core';
import { TaskProcessVariableModel } from '../models/task-process-variable.model'; import { TaskProcessVariableModel } from '../models/task-process-variable.model';
import { WidgetVisibilityModel } from '../models/widget-visibility.model'; import { WidgetVisibilityModel } from '../models/widget-visibility.model';
import { FormModel, FormFieldModel, TabModel, ContainerModel, FormFieldTypes } from '../components/widgets/core/index'; import { FormModel, FormFieldModel, TabModel, ContainerModel, FormFieldTypes } from '../components/widgets/core/index';
import { FormService } from './form.service';
declare let AlfrescoApi: any;
declare let jasmine: any; declare let jasmine: any;
describe('WidgetVisibilityService', () => { describe('WidgetVisibilityService', () => {
let service: WidgetVisibilityService; let service, injector;
let booleanResult: boolean; let booleanResult: boolean;
let stubFormWithFields = new FormModel(fakeFormJson); let stubFormWithFields = new FormModel(fakeFormJson);
beforeAll(() => { beforeEach(() => {
TestBed.configureTestingModule({ injector = ReflectiveInjector.resolveAndCreate([
imports: [ HttpModule, CoreModule ], WidgetVisibilityService,
providers: [ AlfrescoSettingsService,
WidgetVisibilityService, AlfrescoApiService,
FormService AlfrescoAuthenticationService,
] StorageService
}); ]);
service = TestBed.get(WidgetVisibilityService);
}); });
beforeEach(() => { beforeEach(() => {
service = injector.get(WidgetVisibilityService);
jasmine.Ajax.install(); jasmine.Ajax.install();
}); });
@ -191,9 +195,9 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest = new WidgetVisibilityModel(); visibilityObjTest = new WidgetVisibilityModel();
}); });
it('should return the process variables for task', (done) => { fit('should return the process variables for task', (done) => {
service.getTaskProcessVariable('9999').subscribe( service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => { (res) => {
expect(res).toBeDefined(); expect(res).toBeDefined();
expect(res.length).toEqual(3); expect(res.length).toEqual(3);
expect(res[0].id).toEqual('TEST_VAR_1'); expect(res[0].id).toEqual('TEST_VAR_1');
@ -205,7 +209,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -222,7 +226,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -237,7 +241,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -255,7 +259,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -273,7 +277,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -292,7 +296,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -316,7 +320,7 @@ describe('WidgetVisibilityService', () => {
jasmine.Ajax.requests.mostRecent().respondWith({ jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, status: 200,
contentType: 'json', contentType: 'json',
responseText: fakeTaskProcessVariableModels responseText: JSON.stringify(fakeTaskProcessVariableModels)
}); });
}); });
@ -620,30 +624,30 @@ describe('WidgetVisibilityService', () => {
}); });
/* /*
it('should refresh the visibility for field', () => { it('should refresh the visibility for field', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST'; visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!='; visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID'; visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let container = <ContainerModel> fakeFormWithField.fields[0]; let container = <ContainerModel> fakeFormWithField.fields[0];
let column0 = container.columns[0]; let column0 = container.columns[0];
let column1 = container.columns[1]; let column1 = container.columns[1];
column0.fields[0].visibilityCondition = visibilityObjTest; column0.fields[0].visibilityCondition = visibilityObjTest;
service.refreshVisibility(fakeFormWithField); service.refreshVisibility(fakeFormWithField);
expect(column0.fields[0].isVisible).toBeFalsy(); expect(column0.fields[0].isVisible).toBeFalsy();
expect(column0.fields[1].isVisible).toBeTruthy(); expect(column0.fields[1].isVisible).toBeTruthy();
expect(column0.fields[2].isVisible).toBeTruthy(); expect(column0.fields[2].isVisible).toBeTruthy();
expect(column1.fields[0].isVisible).toBeTruthy(); expect(column1.fields[0].isVisible).toBeTruthy();
}); });
*/ */
it('should refresh the visibility for tab in forms', () => { it('should refresh the visibility for tab in forms', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST'; visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!='; visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID'; visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let tab = new TabModel(fakeFormWithField, {id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true}); let tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
tab.visibilityCondition = visibilityObjTest; tab.visibilityCondition = visibilityObjTest;
fakeFormWithField.tabs.push(tab); fakeFormWithField.tabs.push(tab);
service.refreshVisibility(fakeFormWithField); service.refreshVisibility(fakeFormWithField);
@ -655,7 +659,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST'; visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!='; visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID'; visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let tab = new TabModel(fakeFormWithField, {id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true}); let tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
tab.visibilityCondition = visibilityObjTest; tab.visibilityCondition = visibilityObjTest;
service.refreshEntityVisibility(tab); service.refreshEntityVisibility(tab);

View File

@ -232,13 +232,17 @@ export class WidgetVisibilityService {
} }
getTaskProcessVariable(taskId: string): Observable<TaskProcessVariableModel[]> { getTaskProcessVariable(taskId: string): Observable<TaskProcessVariableModel[]> {
return Observable.fromPromise(this.apiService.getInstance().activiti.taskFormsApi.getTaskFormVariables(taskId)) return Observable.fromPromise(this.callApiGetTaskProcessVariables(taskId))
.map((response: TaskProcessVariableModel[]) => { .map((response: TaskProcessVariableModel[]) => {
this.processVarList = response; this.processVarList = response;
}) })
.catch(this.handleError); .catch(this.handleError);
} }
callApiGetTaskProcessVariables(taskId: string) {
return this.apiService.getInstance().activiti.taskFormsApi.getTaskFormVariables(taskId);
}
private handleError() { private handleError() {
console.error('Error while performing a call'); console.error('Error while performing a call');
return Observable.throw('Error while performing a call - Server error'); return Observable.throw('Error while performing a call - Server error');

View File

@ -17,7 +17,6 @@
import { ReflectiveInjector } from '@angular/core'; import { ReflectiveInjector } from '@angular/core';
import { BpmUserService } from '../services/bpm-user.service'; import { BpmUserService } from '../services/bpm-user.service';
// import { BpmUserModel } from '../models/bpm-user.model';
import { AlfrescoAuthenticationService, AlfrescoApiService, AlfrescoSettingsService, StorageService } from 'ng2-alfresco-core'; import { AlfrescoAuthenticationService, AlfrescoApiService, AlfrescoSettingsService, StorageService } from 'ng2-alfresco-core';
import { fakeBpmUser } from '../assets/fake-bpm-user.service.mock'; import { fakeBpmUser } from '../assets/fake-bpm-user.service.mock';