[ADF-5159] fix visibility condition for label radio box (#5974)

* fix visibility condition for label radio box

* fix lint
This commit is contained in:
Eugenio Romano
2020-08-11 16:22:50 +01:00
committed by GitHub
parent ff8cfb1d05
commit 0a935acf23
4 changed files with 134 additions and 53 deletions

View File

@@ -27,11 +27,13 @@ import { TaskProcessVariableModel } from './../models/task-process-variable.mode
import { WidgetVisibilityModel } from './../models/widget-visibility.model';
import { WidgetVisibilityService } from './widget-visibility.service';
import { setupTestBed } from '../../testing/setup-test-bed';
import { fakeTaskProcessVariableModels,
fakeFormJson, formTest,
formValues, complexVisibilityJsonVisible,
complexVisibilityJsonNotVisible, tabVisibilityJsonMock,
tabInvalidFormVisibility } from 'core/mock/form/widget-visibility.service.mock';
import {
fakeTaskProcessVariableModels,
fakeFormJson, formTest,
formValues, complexVisibilityJsonVisible,
complexVisibilityJsonNotVisible, tabVisibilityJsonMock,
tabInvalidFormVisibility
} from 'core/mock/form/widget-visibility.service.mock';
import { CoreTestingModule } from '../../testing/core.testing.module';
import { TranslateModule } from '@ngx-translate/core';
@@ -931,6 +933,75 @@ describe('WidgetVisibilityService', () => {
expect(fakeFormField.isVisible).toBeFalsy();
expect(fakeFormField.value).toEqual('FAKE_FORM_FIELD_VALUE');
});
it('should evaluate radio box LABEL condition', (done) => {
visibilityObjTest.leftFormFieldId = 'radioBoxField_LABEL';
visibilityObjTest.leftRestResponseId = null;
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'No';
visibilityObjTest.rightType = null;
visibilityObjTest.rightFormFieldId = '';
visibilityObjTest.rightRestResponseId = '';
visibilityObjTest.nextConditionOperator = '';
visibilityObjTest.nextCondition = null;
const radioBoxForm = new FormModel({
id: '9999',
name: 'CHECKBOX_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: [
{
id: 'radioboxField',
name: 'radioboxField test',
type: 'radio-buttons',
options: [
{
'id': 'radioBoxYes',
'name': 'Yes'
},
{
'id': 'radioBoxNo',
'name': 'No'
}
]
}, {
id: 'textBoxTest',
name: 'textbox test',
type: 'people',
visibilityCondition: visibilityObjTest
}
]
}
}
]
});
const fieldWithVisibilityAttached = radioBoxForm.getFieldById('textBoxTest');
const radioBox = radioBoxForm.getFieldById('radioboxField');
radioBox.value = 'Yes';
service.refreshVisibility(radioBoxForm);
expect(fieldWithVisibilityAttached.isVisible).toBeFalsy();
radioBox.value = 'No';
service.refreshVisibility(radioBoxForm);
expect(fieldWithVisibilityAttached.isVisible).toBeTruthy();
done();
});
});
describe('Visibility based on form variables', () => {