[ADF-4848] Form - fix tab visibility (#5021)

* [ADF-4848] - fix tab visibility

* add unit test
This commit is contained in:
Silviu Popa
2019-08-30 21:31:12 +03:00
committed by Eugenio Romano
parent 2b1250cae7
commit be867b0c0c
3 changed files with 930 additions and 774 deletions

View File

@@ -38,7 +38,7 @@ export class TabModel extends FormWidgetModel {
if (json) {
this.title = json.title;
this.visibilityCondition = <WidgetVisibilityModel> json.visibilityCondition;
this.visibilityCondition = new WidgetVisibilityModel(json.visibilityCondition);
}
}
}

View File

@@ -34,7 +34,7 @@ import { AlfrescoApiServiceMock } from '../../mock/alfresco-api.service.mock';
import { fakeTaskProcessVariableModels,
fakeFormJson, formTest,
formValues, complexVisibilityJsonVisible,
complexVisibilityJsonNotVisible } from 'core/mock/form/widget-visibility.service.mock';
complexVisibilityJsonNotVisible, tabVisibilityJsonMock } from 'core/mock/form/widget-visibility.service.mock';
declare let jasmine: any;
@@ -929,6 +929,7 @@ describe('WidgetVisibilityService', () => {
describe('Visibility based on form variables', () => {
let fakeFormWithVariables = new FormModel(fakeFormJson);
const fakeTabVisibilityModel = new FormModel(tabVisibilityJsonMock);
const complexVisibilityModel = new FormModel(complexVisibilityJsonVisible);
const complexVisibilityJsonNotVisibleModel = new FormModel(complexVisibilityJsonNotVisible);
let visibilityObjTest: WidgetVisibilityModel;
@@ -1014,5 +1015,18 @@ describe('WidgetVisibilityService', () => {
expect(isVisible).toBeTruthy();
});
it('should validate visiblity for multiple tabs', () => {
visibilityObjTest.leftFormFieldId = 'label';
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'text';
service.refreshVisibility(fakeTabVisibilityModel);
expect(fakeTabVisibilityModel.tabs[1].isVisible).toBeFalsy();
fakeTabVisibilityModel.getFieldById('label').value = 'text';
service.refreshVisibility(fakeTabVisibilityModel);
expect(fakeTabVisibilityModel.tabs[1].isVisible).toBeTruthy();
});
});
});

File diff suppressed because it is too large Load Diff