mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
[MNT-22003] - fixed check on variable for visibility service (#6306)
* [MNT-22003] - fixed check on variable for visibility service * [MNT-22003] - update variable for test * [MNT-22003] - added extra unit test for checking the process variable passed Co-authored-by: Vito Albano <vitoalbano@vitoalbano-mbp-0120.local>
This commit is contained in:
parent
66b51a7c93
commit
9c1b6dbc69
@ -829,6 +829,62 @@ describe('WidgetVisibilityCloudService', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should use the process variables when they are passed to check the visibility', () => {
|
||||||
|
|
||||||
|
visibilityObjTest.leftType = WidgetTypeEnum.field;
|
||||||
|
visibilityObjTest.leftValue = 'FIELD_FORM_EMPTY';
|
||||||
|
visibilityObjTest.operator = '==';
|
||||||
|
visibilityObjTest.rightType = WidgetTypeEnum.value;
|
||||||
|
visibilityObjTest.rightValue = 'PROCESS_RIGHT_FORM_FIELD_VALUE';
|
||||||
|
|
||||||
|
const myForm = new FormModel({
|
||||||
|
id: '9999',
|
||||||
|
name: 'FORM_PROCESS_VARIABLE_VISIBILITY',
|
||||||
|
processDefinitionId: 'PROCESS_TEST:9:9999',
|
||||||
|
processDefinitionName: 'PROCESS_TEST',
|
||||||
|
processDefinitionKey: 'PROCESS_TEST',
|
||||||
|
taskId: '999',
|
||||||
|
taskName: 'TEST',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '000000000000000000',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: null,
|
||||||
|
numberOfColumns: 2,
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'FIELD_FORM_EMPTY',
|
||||||
|
name: 'FIELD_FORM_EMPTY',
|
||||||
|
type: 'text',
|
||||||
|
value: '',
|
||||||
|
visibilityCondition: null,
|
||||||
|
isVisible: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'FIELD_FORM_WITH_CONDITION',
|
||||||
|
name: 'FIELD_FORM_WITH_CONDITION',
|
||||||
|
type: 'text',
|
||||||
|
value: 'field_form_with_condition_value',
|
||||||
|
visibilityCondition: visibilityObjTest,
|
||||||
|
isVisible: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
service.refreshVisibility(myForm, [{ id: 'FIELD_FORM_EMPTY', type: 'string', value: 'PROCESS_RIGHT_FORM_FIELD_VALUE' }]);
|
||||||
|
|
||||||
|
const fieldWithVisibilityAttached = myForm.getFieldById('FIELD_FORM_WITH_CONDITION');
|
||||||
|
expect(fieldWithVisibilityAttached.isVisible).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
it('should use the process value to evaluate the False visibility condition if the form value is empty', (done) => {
|
it('should use the process value to evaluate the False visibility condition if the form value is empty', (done) => {
|
||||||
|
|
||||||
service.getTaskProcessVariable('9999').subscribe(
|
service.getTaskProcessVariable('9999').subscribe(
|
||||||
|
@ -43,8 +43,11 @@ export class WidgetVisibilityService {
|
|||||||
private logService: LogService) {
|
private logService: LogService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public refreshVisibility(form: FormModel) {
|
public refreshVisibility(form: FormModel, processVarList?: TaskProcessVariableModel[]) {
|
||||||
this.form = form;
|
this.form = form;
|
||||||
|
if (processVarList) {
|
||||||
|
this.processVarList = processVarList;
|
||||||
|
}
|
||||||
if (form && form.tabs && form.tabs.length > 0) {
|
if (form && form.tabs && form.tabs.length > 0) {
|
||||||
form.tabs.map((tabModel) => this.refreshEntityVisibility(tabModel));
|
form.tabs.map((tabModel) => this.refreshEntityVisibility(tabModel));
|
||||||
}
|
}
|
||||||
|
@ -205,7 +205,7 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges,
|
|||||||
this.data = data[1];
|
this.data = data[1];
|
||||||
|
|
||||||
const parsedForm = this.parseForm(this.formCloudRepresentationJSON);
|
const parsedForm = this.parseForm(this.formCloudRepresentationJSON);
|
||||||
this.visibilityService.refreshVisibility(<any> parsedForm);
|
this.visibilityService.refreshVisibility(<any> parsedForm, this.data);
|
||||||
parsedForm.validateForm();
|
parsedForm.validateForm();
|
||||||
this.form = parsedForm;
|
this.form = parsedForm;
|
||||||
this.form.nodeId = '-my-';
|
this.form.nodeId = '-my-';
|
||||||
|
@ -18,8 +18,12 @@
|
|||||||
export class TaskVariableCloud {
|
export class TaskVariableCloud {
|
||||||
name: string;
|
name: string;
|
||||||
value: any;
|
value: any;
|
||||||
|
type: string;
|
||||||
|
id: string;
|
||||||
constructor(obj) {
|
constructor(obj) {
|
||||||
|
this.id = obj.name || null;
|
||||||
this.name = obj.name || null;
|
this.name = obj.name || null;
|
||||||
this.value = obj.value || null;
|
this.value = obj.value || null;
|
||||||
|
this.type = obj.type || null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -264,7 +264,8 @@ describe('StartProcessCloudComponent', () => {
|
|||||||
it('should be able to start a process with a prefilled valid form', fakeAsync(() => {
|
it('should be able to start a process with a prefilled valid form', fakeAsync(() => {
|
||||||
component.processDefinitionName = 'processwithform';
|
component.processDefinitionName = 'processwithform';
|
||||||
getDefinitionsSpy.and.returnValue(of(fakeSingleProcessDefinition(component.processDefinitionName)));
|
getDefinitionsSpy.and.returnValue(of(fakeSingleProcessDefinition(component.processDefinitionName)));
|
||||||
component.values = [{ 'name': 'firstName', 'value': 'FakeName' }, {
|
component.values = [{'id': '1', 'type': 'string', 'name': 'firstName', 'value': 'FakeName' }, {
|
||||||
|
'id': '1', 'type': 'string',
|
||||||
'name': 'lastName',
|
'name': 'lastName',
|
||||||
'value': 'FakeLastName'
|
'value': 'FakeLastName'
|
||||||
}];
|
}];
|
||||||
@ -298,7 +299,8 @@ describe('StartProcessCloudComponent', () => {
|
|||||||
it('should NOT be able to start a process with a prefilled NOT valid form', fakeAsync(() => {
|
it('should NOT be able to start a process with a prefilled NOT valid form', fakeAsync(() => {
|
||||||
component.processDefinitionName = 'processwithform';
|
component.processDefinitionName = 'processwithform';
|
||||||
getDefinitionsSpy.and.returnValue(of(fakeSingleProcessDefinition(component.processDefinitionName)));
|
getDefinitionsSpy.and.returnValue(of(fakeSingleProcessDefinition(component.processDefinitionName)));
|
||||||
component.values = [{ 'name': 'firstName', 'value': 'FakeName' }, {
|
component.values = [{ 'id': '1', 'type': 'string', 'name': 'firstName', 'value': 'FakeName' }, {
|
||||||
|
'id': '1', 'type': 'string',
|
||||||
'name': 'lastName',
|
'name': 'lastName',
|
||||||
'value': 'FakeLastName'
|
'value': 'FakeLastName'
|
||||||
}];
|
}];
|
||||||
@ -331,7 +333,8 @@ describe('StartProcessCloudComponent', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
it('should create a process instance if the selection is valid', fakeAsync(() => {
|
it('should create a process instance if the selection is valid', fakeAsync(() => {
|
||||||
component.values = [{ 'name': 'firstName', 'value': 'FakeName' }, {
|
component.values = [{ 'id': '1', 'type': 'string', 'name': 'firstName', 'value': 'FakeName' }, {
|
||||||
|
'id': '1', 'type': 'string',
|
||||||
'name': 'lastName',
|
'name': 'lastName',
|
||||||
'value': 'FakeLastName'
|
'value': 'FakeLastName'
|
||||||
}];
|
}];
|
||||||
@ -362,7 +365,8 @@ describe('StartProcessCloudComponent', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
it('should have start button enabled when default values are set', fakeAsync(() => {
|
it('should have start button enabled when default values are set', fakeAsync(() => {
|
||||||
component.values = [{ 'name': 'firstName', 'value': 'FakeName' }, {
|
component.values = [{ 'id': '1', 'type': 'string', 'name': 'firstName', 'value': 'FakeName' }, {
|
||||||
|
'id': '1', 'type': 'string',
|
||||||
'name': 'lastName',
|
'name': 'lastName',
|
||||||
'value': 'FakeLastName'
|
'value': 'FakeLastName'
|
||||||
}];
|
}];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user