From 0bc0acda764a69dd9a7b1363252568af097ab437 Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 12:37:53 +0100 Subject: [PATCH 01/10] Fixed unreliable tests for widgetVisibility --- .../widget-visibility.service.spec.ts | 191 +++++++++--------- .../src/services/widget-visibility.service.ts | 5 +- 2 files changed, 94 insertions(+), 102 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts index 53f7a14ebc..7e5fc16ff5 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts @@ -205,11 +205,14 @@ describe('WidgetVisibilityService', () => { expect(res).toBeFalsy(); }); - /* + it('should be able to retrieve the value of a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - done(); + let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1'); + expect(varValue).not.toBeUndefined(); + expect(varValue).toBe('test_value_1'); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -217,14 +220,7 @@ describe('WidgetVisibilityService', () => { contentType: 'application/json', responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - - - let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1'); - - expect(varValue).not.toBe(null); - expect(varValue).toBe('test_value_1'); - }); - */ + }); it('should be able to retrieve the value of a form variable', () => { let fakeForm = new FormModel({variables: [ @@ -234,15 +230,17 @@ describe('WidgetVisibilityService', () => { ]}); let varValue = service.getValueFromVariable(fakeForm, 'FORM_VARIABLE_TEST'); - expect(varValue).not.toBe(null); + expect(varValue).not.toBeUndefined(); expect(varValue).toBe('form_value_test'); - }); + }); + - /* it('should return null if the variable does not exist', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - done(); + let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR'); + expect(varValue).toBeNull(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -251,36 +249,34 @@ describe('WidgetVisibilityService', () => { responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR'); - expect(varValue).toBe(null); - }); - */ + }); + it('should be able to retrieve a field value searching in the form', () => { let stubFormWithFields = new FormModel(fakeFormJson); let formValue = service.getFormValueByName(stubFormWithFields, 'FIELD_WITH_CONDITION'); - expect(formValue).not.toBe(null); + expect(formValue).not.toBeNull(); expect(formValue).toBe('field_with_condition_value'); - }); + }); it('should return null if the field value is not in the form', () => { let stubFormWithFields = new FormModel(fakeFormJson); let formValue = service.getFormValueByName(stubFormWithFields, 'FIELD_MYSTERY'); - expect(formValue).toBe(null); - }); + expect(formValue).toBeNull(); + }); it('should take the value from form values if it is present', () => { formTest.values = formValues; let formValue = service.getValueOField(formTest, 'test_1'); - expect(formValue).not.toBe(null); + expect(formValue).not.toBeNull(); expect(formValue).toBe('value_1'); - }); + }); it('should search in the form if element value is not in form values', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -288,9 +284,9 @@ describe('WidgetVisibilityService', () => { let value = service.getValueOField(fakeFormWithField, 'FIELD_WITH_CONDITION'); - expect(value).not.toBe(null); + expect(value).not.toBeNull(); expect(value).toBe('field_with_condition_value'); - }); + }); it('should return null if the element is not present anywhere', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -298,8 +294,8 @@ describe('WidgetVisibilityService', () => { let formValue = service.getValueOField(fakeFormWithField, 'FIELD_MYSTERY'); - expect(formValue).toBe(null); - }); + expect(formValue).toBeNull(); + }); it('should retrieve the value for the right field when it is a value', () => { let visibilityObjTest = new WidgetVisibilityModel(); @@ -308,13 +304,19 @@ describe('WidgetVisibilityService', () => { let rightValue = service.getRightValue(formTest, visibilityObjTest); expect(rightValue).toBe('100'); - }); + }); - /* it('should retrieve the value for the right field when it is a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - done(); + let visibilityObjTest = new WidgetVisibilityModel(); + visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; + + let rightValue = service.getRightValue(formTest, visibilityObjTest); + + expect(rightValue).not.toBeNull(); + expect(rightValue).toBe('test_value_2'); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -322,15 +324,7 @@ describe('WidgetVisibilityService', () => { contentType: 'application/json', responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - let visibilityObjTest = new WidgetVisibilityModel(); - visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; - - let rightValue = service.getRightValue(formTest, visibilityObjTest); - - expect(rightValue).not.toBe(null); - expect(rightValue).toBe('test_value_2'); - }); - */ + }); it('should retrieve the value for the right field when it is a form variable', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -339,9 +333,9 @@ describe('WidgetVisibilityService', () => { let rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest); - expect(rightValue).not.toBe(null); + expect(rightValue).not.toBeNull(); expect(rightValue).toBe('RIGHT_FORM_FIELD_VALUE'); - }); + }); it('should retrieve right value from form values if it is present', () => { formTest.values = formValues; @@ -350,10 +344,10 @@ describe('WidgetVisibilityService', () => { let rightValue = service.getRightValue(formTest, visibilityObjTest); - expect(rightValue).not.toBe(null); + expect(rightValue).not.toBeNull(); expect(formTest.values).toEqual(formValues); expect(rightValue).toBe('value_2'); - }); + }); it('should return null for a value that is not on variable or form', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -363,14 +357,20 @@ describe('WidgetVisibilityService', () => { let rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest); - expect(rightValue).toBe(null); - }); + expect(rightValue).toBeNull(); + }); - /* it('should retrieve the value for the left field when it is a process variable', (variableUpdated) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - variableUpdated(); + let visibilityObjTest = new WidgetVisibilityModel(); + visibilityObjTest.leftRestResponseId = 'TEST_VAR_2'; + + let rightValue = service.getLeftValue(formTest, visibilityObjTest); + + expect(rightValue).not.toBeNull(); + expect(rightValue).toBe('test_value_2'); + variableUpdated(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -378,15 +378,7 @@ describe('WidgetVisibilityService', () => { contentType: 'application/json', responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - let visibilityObjTest = new WidgetVisibilityModel(); - visibilityObjTest.leftRestResponseId = 'TEST_VAR_2'; - - let rightValue = service.getLeftValue(formTest, visibilityObjTest); - - expect(rightValue).not.toBe(null); - expect(rightValue).toBe('test_value_2'); - }); - */ + }); it('should retrieve the value for the left field when it is a form variable', () => { let fakeForm = new FormModel({variables: [ @@ -399,9 +391,9 @@ describe('WidgetVisibilityService', () => { let leftValue = service.getLeftValue(fakeForm, visibilityObjTest); - expect(leftValue).not.toBe(null); + expect(leftValue).not.toBeNull(); expect(leftValue).toBe('form_value_test'); - }); + }); it('should retrieve the value for the left field when it is a form value', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -410,9 +402,9 @@ describe('WidgetVisibilityService', () => { let leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest); - expect(leftValue).not.toBe(null); + expect(leftValue).not.toBeNull(); expect(leftValue).toBe('field_with_condition_value'); - }); + }); it('should retrieve left value from form values if it is present', () => { formTest.values = formValues; @@ -421,9 +413,9 @@ describe('WidgetVisibilityService', () => { let leftValue = service.getLeftValue(formTest, visibilityObjTest); - expect(leftValue).not.toBe(null); + expect(leftValue).not.toBeNull(); expect(leftValue).toBe('value_2'); - }); + }); it('should return null for a value that is not on variable or form', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -431,8 +423,8 @@ describe('WidgetVisibilityService', () => { let leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest); - expect(leftValue).toBe(null); - }); + expect(leftValue).toBeNull(); + }); it('should evaluate the visibility for the field with single visibility condition between two field values', () => { formTest.values = formValues; @@ -444,7 +436,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(formTest, visibilityObjTest); expect(isVisible).toBeTruthy(); - }); + }); it('should evaluate true visibility for the field with single visibility condition between a field and a value', () => { formTest.values = formValues; @@ -456,7 +448,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(formTest, visibilityObjTest); expect(isVisible).toBeTruthy(); - }); + }); it('should evaluate the visibility for the field with single visibility condition between form values', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -468,13 +460,21 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); expect(isVisible).toBeTruthy(); - }); + }); - /* it('should evaluate the visibility for the field between form value and process var', (varReady) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - varReady(); + let fakeFormWithField = new FormModel(fakeFormJson); + let visibilityObjTest = new WidgetVisibilityModel(); + visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID'; + visibilityObjTest.operator = '!='; + visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; + + let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); + + expect(isVisible).toBeTruthy(); + varReady(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -482,23 +482,27 @@ describe('WidgetVisibilityService', () => { contentType: 'application/json', responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - let fakeFormWithField = new FormModel(fakeFormJson); - let visibilityObjTest = new WidgetVisibilityModel(); - visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID'; - visibilityObjTest.operator = '!='; - visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; + }); - let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); - expect(isVisible).toBeTruthy(); - }); - */ - - /* it('should evaluate visibility with multiple conditions', (ready) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - ready(); + let fakeFormWithField = new FormModel(fakeFormJson); + let visibilityObjTest = new WidgetVisibilityModel(); + let chainedVisibilityObj = new WidgetVisibilityModel(); + visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID'; + visibilityObjTest.operator = '!='; + visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; + visibilityObjTest.nextConditionOperator = 'and'; + chainedVisibilityObj.leftRestResponseId = 'TEST_VAR_2'; + chainedVisibilityObj.operator = '!empty'; + visibilityObjTest.nextCondition = chainedVisibilityObj; + + let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); + + expect(isVisible).toBeTruthy(); + ready(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -506,22 +510,7 @@ describe('WidgetVisibilityService', () => { contentType: 'application/json', responseText: JSON.stringify(fakeTaskProcessVariableModels) }); - let fakeFormWithField = new FormModel(fakeFormJson); - let visibilityObjTest = new WidgetVisibilityModel(); - let chainedVisibilityObj = new WidgetVisibilityModel(); - visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID'; - visibilityObjTest.operator = '!='; - visibilityObjTest.rightRestResponseId = 'TEST_VAR_2'; - visibilityObjTest.nextConditionOperator = 'and'; - chainedVisibilityObj.leftRestResponseId = 'TEST_VAR_2'; - chainedVisibilityObj.operator = '!empty'; - visibilityObjTest.nextCondition = chainedVisibilityObj; - - let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); - - expect(isVisible).toBeTruthy(); - }); - */ + }); it('should return true when the visibility condition is not valid', () => { let visibilityObjTest = new WidgetVisibilityModel(); @@ -532,7 +521,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.getVisiblityForField(formTest, visibilityObjTest); expect(isVisible).toBeTruthy(); - }); + }); it('should refresh the visibility for a form field object', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -547,7 +536,7 @@ describe('WidgetVisibilityService', () => { service.refreshVisibilityForField(fakeFormField); expect(fakeFormField.isVisible).toBeFalsy(); - }); + }); it('should not change the isVisible if field does not have visibility condition', () => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -559,5 +548,5 @@ describe('WidgetVisibilityService', () => { fakeFormField.isVisible = false; service.refreshVisibilityForField(fakeFormField); expect(fakeFormField.isVisible).toBeFalsy(); - }); + }); }); diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts index 56249235b4..04de51d00b 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts @@ -120,7 +120,10 @@ export class WidgetVisibilityService { } private getValueFromVariable(form: FormModel, name: string) { - let formVariable = form.json.variables.find(formVar => formVar.name === name); + let formVariable; + if ( form.json.variables ) { + formVariable = form.json.variables.find(formVar => formVar.name === name); + } if ( !formVariable && this.processVarList ) { formVariable = this.processVarList.find(variable => variable.id === name); } From f9bb489963a488f6a9d17efd1b2ea6487e771699 Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 13:48:35 +0100 Subject: [PATCH 02/10] Fixed tslint error --- .../src/components/widgets/upload/upload.widget.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts index 0e6e66e98c..f9eff7d18d 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts @@ -30,13 +30,14 @@ declare var componentHandler; }) export class UploadWidget extends WidgetComponent implements OnInit { + hasFile: boolean; + fileName: string; + constructor(private settingsService: AlfrescoSettingsService, private authService: AlfrescoAuthenticationService) { super(); } - hasFile: boolean; - fileName: string; ngOnInit() { if (this.field && From a2b707b316d8f22aeb3fdeba9829254b331af0fe Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Tue, 20 Sep 2016 12:35:12 +0100 Subject: [PATCH 03/10] remove typings from script --- scripts/npm-link-demo-shell.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/npm-link-demo-shell.sh b/scripts/npm-link-demo-shell.sh index 290197f433..d286f950e5 100755 --- a/scripts/npm-link-demo-shell.sh +++ b/scripts/npm-link-demo-shell.sh @@ -70,7 +70,6 @@ echo "====== linking component: ng2-alfresco-tag =====" cd "$DIR/../ng2-components/ng2-alfresco-tag" npm link ng2-alfresco-core npm link -npm run typings npm run build #LINK ALL THE OTHERS COMPONENTS From c749a2b5cd2a684dd9fc9b003a3069e66fe00041 Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Tue, 20 Sep 2016 12:36:43 +0100 Subject: [PATCH 04/10] remove typings from script --- scripts/npm-link-demo-shell.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/npm-link-demo-shell.sh b/scripts/npm-link-demo-shell.sh index d286f950e5..c42c0d1740 100755 --- a/scripts/npm-link-demo-shell.sh +++ b/scripts/npm-link-demo-shell.sh @@ -2,8 +2,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -npm install -g typings - #LINK CORE echo "====== linking component: ng2-alfresco-core =====" cd "$DIR/../ng2-components/ng2-alfresco-core" From 7bd7432371205d0a3680c9af8fcdaa28c8c097ce Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Tue, 20 Sep 2016 16:45:56 +0100 Subject: [PATCH 05/10] Update README.md --- README.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a079dca669..325dec0ca1 100644 --- a/README.md +++ b/README.md @@ -47,18 +47,8 @@ necessary configuration, see this [page](PREREQUISITES.md). ## Components -The following is a list of some of the components that you can use when building your custom Alfresco web client: - -- [Core library](ng2-components/ng2-alfresco-core/README.md) -- [DataTable](ng2-components/ng2-alfresco-datatable/README.md) -- [DocumentList](ng2-components/ng2-alfresco-documentlist/README.md) -- Activiti [ProcessList](ng2-components/ng2-activiti-processlist/README.md) and [TaskList](ng2-components/ng2-activiti-tasklist/README.md) -- [Activiti Form](ng2-components/ng2-activiti-form/README.md) -- [Viewer](ng2-components/ng2-alfresco-viewer/README.md) -- [Login](ng2-components/ng2-alfresco-login/README.md) -- [Upload](ng2-components/ng2-alfresco-upload/README.md) -- [Webscript viewer](ng2-components/ng2-alfresco-webscript/README.md) -- [Tag list and controls](ng2-components/ng2-alfresco-tag/README.md) +To view the complete list of all the components that you can use to build your custom Alfresco (ECM,BPM) client follow this link: +[Components](https://github.com/Alfresco/alfresco-ng2-components/tree/master/ng2-components). You can browse all the components at the following [page](http://devproducts.alfresco.com/). From 4b1ee98e82cf73770f6b88ecb82041f4c4691ef6 Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Tue, 20 Sep 2016 16:52:01 +0100 Subject: [PATCH 06/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 325dec0ca1..f4cbce400d 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ necessary configuration, see this [page](PREREQUISITES.md). ## Components To view the complete list of all the components that you can use to build your custom Alfresco (ECM,BPM) client follow this link: -[Components](https://github.com/Alfresco/alfresco-ng2-components/tree/master/ng2-components). +[Components](/ng2-components). You can browse all the components at the following [page](http://devproducts.alfresco.com/). From bb4ed53d3a56dfab226bc6fb80813dc366eb540f Mon Sep 17 00:00:00 2001 From: Mario Romano Date: Tue, 20 Sep 2016 16:53:00 +0100 Subject: [PATCH 07/10] Update README.md --- ng2-components/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ng2-components/README.md b/ng2-components/README.md index f20200fb5d..56ef91ae5f 100644 --- a/ng2-components/README.md +++ b/ng2-components/README.md @@ -42,11 +42,12 @@ - [Viewer](ng2-alfresco-viewer/README.md) - [Login](ng2-alfresco-login/README.md) - [Upload](ng2-alfresco-upload/README.md) -- [Webscript Viewer](ng2-components/ng2-alfresco-webscript/README.md) -- [Tag list and controls](ng2-components/ng2-alfresco-tag/README.md) +- [Webscript Viewer](ng2-alfresco-webscript/README.md) +- [Tag list and controls](ng2-alfresco-tag/README.md) ## BPM components +- [TaskList](ng2-activiti-tasklist/README.md) - [ProcessList](ng2-activiti-processlist/README.md) - [Form](ng2-activiti-form/README.md) From 8f6a9fb03be84f81c6a1acb77813d4eae23380a3 Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 17:39:48 +0100 Subject: [PATCH 08/10] Added some improvements, and fixed some name in the specs --- .../widget-visibility.service.spec.ts | 19 ++++----- .../src/services/widget-visibility.service.ts | 39 ++++++++++++------- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts index 7e5fc16ff5..b471335c30 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts @@ -209,7 +209,8 @@ describe('WidgetVisibilityService', () => { it('should be able to retrieve the value of a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1'); + expect(res).toBeDefined(); + let varValue = service.getValueFromVariable(formTest, 'TEST_VAR_1', res); expect(varValue).not.toBeUndefined(); expect(varValue).toBe('test_value_1'); done(); @@ -228,7 +229,7 @@ describe('WidgetVisibilityService', () => { type: 'string', value: 'form_value_test' } ]}); - let varValue = service.getValueFromVariable(fakeForm, 'FORM_VARIABLE_TEST'); + let varValue = service.getValueFromVariable(fakeForm, 'FORM_VARIABLE_TEST', null); expect(varValue).not.toBeUndefined(); expect(varValue).toBe('form_value_test'); @@ -238,7 +239,7 @@ describe('WidgetVisibilityService', () => { it('should return null if the variable does not exist', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { - let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR'); + let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR', res); expect(varValue).toBeNull(); done(); } @@ -360,7 +361,7 @@ describe('WidgetVisibilityService', () => { expect(rightValue).toBeNull(); }); - it('should retrieve the value for the left field when it is a process variable', (variableUpdated) => { + it('should retrieve the value for the left field when it is a process variable', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let visibilityObjTest = new WidgetVisibilityModel(); @@ -370,7 +371,7 @@ describe('WidgetVisibilityService', () => { expect(rightValue).not.toBeNull(); expect(rightValue).toBe('test_value_2'); - variableUpdated(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -462,7 +463,7 @@ describe('WidgetVisibilityService', () => { expect(isVisible).toBeTruthy(); }); - it('should evaluate the visibility for the field between form value and process var', (varReady) => { + it('should evaluate the visibility for the field between form value and process var', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -474,7 +475,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); expect(isVisible).toBeTruthy(); - varReady(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ @@ -485,7 +486,7 @@ describe('WidgetVisibilityService', () => { }); - it('should evaluate visibility with multiple conditions', (ready) => { + it('should evaluate visibility with multiple conditions', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let fakeFormWithField = new FormModel(fakeFormJson); @@ -502,7 +503,7 @@ describe('WidgetVisibilityService', () => { let isVisible = service.evaluateVisibilityForField(fakeFormWithField, visibilityObjTest); expect(isVisible).toBeTruthy(); - ready(); + done(); } ); jasmine.Ajax.requests.mostRecent().respondWith({ diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts index 04de51d00b..e53c2a1c33 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts @@ -81,7 +81,7 @@ export class WidgetVisibilityService { private getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel) { if ( visibilityObj.leftRestResponseId ) { - return this.getValueFromVariable(form, visibilityObj.leftRestResponseId); + return this.getValueFromVariable(form, visibilityObj.leftRestResponseId, this.processVarList); } return this.getValueOField(form, visibilityObj.leftFormFieldId); } @@ -89,7 +89,7 @@ export class WidgetVisibilityService { private getRightValue(form: FormModel, visibilityObj: WidgetVisibilityModel) { let valueFound = null; if ( visibilityObj.rightRestResponseId ) { - valueFound = this.getValueFromVariable(form, visibilityObj.rightRestResponseId); + valueFound = this.getValueFromVariable(form, visibilityObj.rightRestResponseId, this.processVarList); }else if ( visibilityObj.rightFormFieldId ) { valueFound = this.getValueOField(form, visibilityObj.rightFormFieldId); }else { @@ -119,18 +119,29 @@ export class WidgetVisibilityService { return null; } - private getValueFromVariable(form: FormModel, name: string) { - let formVariable; - if ( form.json.variables ) { - formVariable = form.json.variables.find(formVar => formVar.name === name); - } - if ( !formVariable && this.processVarList ) { - formVariable = this.processVarList.find(variable => variable.id === name); - } - if ( formVariable ) { - return formVariable.value; - } - return null; + private getValueFromVariable( form: FormModel, name: string, processVarList: TaskProcessVariableModel[] ) { + return this.getFormVariableValue(form, name) || + this.getProcessVariableValue(name, processVarList); + } + + private getFormVariableValue(form: FormModel, name: string ) { + if ( form.json.variables) { + let variableFromForm = form.json.variables.find(formVar => formVar.name === name); + if ( variableFromForm ) { + return variableFromForm.value; + } + } + return null; + } + + private getProcessVariableValue(name: string, processVarList: TaskProcessVariableModel[]) { + if ( this.processVarList ) { + let variableFromProcess = this.processVarList.find(variable => variable.id === name); + if ( variableFromProcess ) { + return variableFromProcess.value; + } + } + return null; } private evaluateLogicalOperation(logicOp, previousValue, newValue): boolean { From 6f24b884653f45c17fdf7112d565d7a8285419f8 Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 17:59:39 +0100 Subject: [PATCH 09/10] Removed return null from methods --- .../src/services/widget-visibility.service.spec.ts | 4 ++-- .../src/services/widget-visibility.service.ts | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts index b471335c30..0f977049f9 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts @@ -236,11 +236,11 @@ describe('WidgetVisibilityService', () => { }); - it('should return null if the variable does not exist', (done) => { + it('should return undefined if the variable does not exist', (done) => { service.getTaskProcessVariableModelsForTask(9999).subscribe( (res: TaskProcessVariableModel[]) => { let varValue = service.getValueFromVariable(formTest, 'TEST_MYSTERY_VAR', res); - expect(varValue).toBeNull(); + expect(varValue).toBeUndefined(); done(); } ); diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts index e53c2a1c33..1446344cca 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts @@ -128,20 +128,18 @@ export class WidgetVisibilityService { if ( form.json.variables) { let variableFromForm = form.json.variables.find(formVar => formVar.name === name); if ( variableFromForm ) { - return variableFromForm.value; + return variableFromForm ? variableFromForm.value : variableFromForm; } } - return null; } private getProcessVariableValue(name: string, processVarList: TaskProcessVariableModel[]) { if ( this.processVarList ) { let variableFromProcess = this.processVarList.find(variable => variable.id === name); if ( variableFromProcess ) { - return variableFromProcess.value; + return variableFromProcess ? variableFromProcess.value : variableFromProcess; } } - return null; } private evaluateLogicalOperation(logicOp, previousValue, newValue): boolean { From eba67fbcdf55adb5a8737484be6b2cf0e1f99c0f Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Tue, 20 Sep 2016 18:10:09 +0100 Subject: [PATCH 10/10] Removed other wrong return null --- .../services/widget-visibility.service.spec.ts | 16 ++++++++-------- .../src/services/widget-visibility.service.ts | 3 +-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts index 0f977049f9..c2c6f97f86 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.spec.ts @@ -262,12 +262,12 @@ describe('WidgetVisibilityService', () => { expect(formValue).toBe('field_with_condition_value'); }); - it('should return null if the field value is not in the form', () => { + it('should return undefined if the field value is not in the form', () => { let stubFormWithFields = new FormModel(fakeFormJson); let formValue = service.getFormValueByName(stubFormWithFields, 'FIELD_MYSTERY'); - expect(formValue).toBeNull(); + expect(formValue).toBeUndefined(); }); it('should take the value from form values if it is present', () => { @@ -289,13 +289,13 @@ describe('WidgetVisibilityService', () => { expect(value).toBe('field_with_condition_value'); }); - it('should return null if the element is not present anywhere', () => { + it('should return undefined if the element is not present anywhere', () => { let fakeFormWithField = new FormModel(fakeFormJson); fakeFormWithField.values = formValues; let formValue = service.getValueOField(fakeFormWithField, 'FIELD_MYSTERY'); - expect(formValue).toBeNull(); + expect(formValue).toBeUndefined(); }); it('should retrieve the value for the right field when it is a value', () => { @@ -350,7 +350,7 @@ describe('WidgetVisibilityService', () => { expect(rightValue).toBe('value_2'); }); - it('should return null for a value that is not on variable or form', () => { + it('should return undefined for a value that is not on variable or form', () => { let fakeFormWithField = new FormModel(fakeFormJson); fakeFormWithField.values = formValues; let visibilityObjTest = new WidgetVisibilityModel(); @@ -358,7 +358,7 @@ describe('WidgetVisibilityService', () => { let rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest); - expect(rightValue).toBeNull(); + expect(rightValue).toBeUndefined(); }); it('should retrieve the value for the left field when it is a process variable', (done) => { @@ -418,13 +418,13 @@ describe('WidgetVisibilityService', () => { expect(leftValue).toBe('value_2'); }); - it('should return null for a value that is not on variable or form', () => { + it('should return undefined for a value that is not on variable or form', () => { let fakeFormWithField = new FormModel(fakeFormJson); let visibilityObjTest = new WidgetVisibilityModel(); let leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest); - expect(leftValue).toBeNull(); + expect(leftValue).toBeUndefined(); }); it('should evaluate the visibility for the field with single visibility condition between two field values', () => { diff --git a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts index 1446344cca..ae7a235960 100644 --- a/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts +++ b/ng2-components/ng2-activiti-form/src/services/widget-visibility.service.ts @@ -116,7 +116,6 @@ export class WidgetVisibilityService { } } } - return null; } private getValueFromVariable( form: FormModel, name: string, processVarList: TaskProcessVariableModel[] ) { @@ -180,7 +179,7 @@ export class WidgetVisibilityService { console.error( 'NO valid operation!' ); break; } - return null; + return; } getTaskProcessVariableModelsForTask(taskId: string): Observable {