Form and Date widget tests

This commit is contained in:
Denys Vuika
2016-10-12 21:31:08 +01:00
parent 3b3098ba59
commit 41671b97a3
4 changed files with 75 additions and 5 deletions

View File

@@ -634,4 +634,74 @@ describe('ActivitiForm', () => {
expect(visibilityService.refreshVisibility).toHaveBeenCalledWith(field.form); expect(visibilityService.refreshVisibility).toHaveBeenCalledWith(field.form);
}); });
it('should load form for ecm node', () => {
spyOn(formComponent, 'loadFormForEcmNode').and.stub();
formComponent.nodeId = '<id>';
formComponent.ngOnInit();
expect(formComponent.loadFormForEcmNode).toHaveBeenCalled();
});
it('should disable outcome buttons for readonly form', () => {
let formModel = new FormModel();
formModel.readOnly = true;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(new FormModel(), {
id: ActivitiForm.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeFalsy();
});
it('should require outcome to eval button state', () => {
formComponent.form = new FormModel();
expect(formComponent.isOutcomeButtonEnabled(null)).toBeFalsy();
});
it('should always enable save outcome for writeable form', () => {
let formModel = new FormModel();
let field = new FormFieldModel(formModel, {
type: 'text',
value: null,
required: true
});
formComponent.form = formModel;
formModel.onFormFieldChanged(field);
expect(formModel.isValid).toBeFalsy();
let outcome = new FormOutcomeModel(new FormModel(), {
id: ActivitiForm.SAVE_OUTCOME_ID,
name: FormOutcomeModel.SAVE_ACTION
});
formComponent.readOnly = true;
expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeTruthy();
});
it('should disable oucome buttons for invalid form', () => {
let formModel = new FormModel();
let field = new FormFieldModel(formModel, {
type: 'text',
value: null,
required: true
});
formComponent.form = formModel;
formModel.onFormFieldChanged(field);
expect(formModel.isValid).toBeFalsy();
let outcome = new FormOutcomeModel(new FormModel(), {
id: ActivitiForm.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
expect(formComponent.isOutcomeButtonEnabled(outcome)).toBeFalsy();
});
}); });

View File

@@ -194,7 +194,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
ngOnInit() { ngOnInit() {
if (this.nodeId) { if (this.nodeId) {
this.loadActivitiFormForEcmNode(); this.loadFormForEcmNode();
} else { } else {
this.loadForm(); this.loadForm();
} }
@@ -418,7 +418,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
} }
} }
private loadActivitiFormForEcmNode(): void { loadFormForEcmNode(): void {
this.nodeService.getNodeMetadata(this.nodeId).subscribe(data => { this.nodeService.getNodeMetadata(this.nodeId).subscribe(data => {
this.data = data.metadata; this.data = data.metadata;
this.loadFormFromActiviti(data.nodeType); this.loadFormFromActiviti(data.nodeType);
@@ -426,7 +426,7 @@ export class ActivitiForm implements OnInit, AfterViewChecked, OnChanges {
this.handleError); this.handleError);
} }
public loadFormFromActiviti(nodeType: string): any { loadFormFromActiviti(nodeType: string): any {
this.formService.searchFrom(nodeType).subscribe( this.formService.searchFrom(nodeType).subscribe(
form => { form => {
if (!form) { if (!form) {

View File

@@ -210,7 +210,7 @@ export class FormFieldModel extends FormWidgetModel {
*/ */
if (json.type === FormFieldTypes.DATE) { if (json.type === FormFieldTypes.DATE) {
if (value) { if (value) {
let d = moment(value.split('T')[0]); let d = moment(value.split('T')[0], 'YYYY-M-D');
if (d.isValid()) { if (d.isValid()) {
value = d.format('D-M-YYYY'); value = d.format('D-M-YYYY');
} }

View File

@@ -67,7 +67,7 @@ describe('DateWidget', () => {
let dateValue = '13-03-1982'; let dateValue = '13-03-1982';
widget.field = new FormFieldModel(null, { widget.field = new FormFieldModel(null, {
type: 'date', type: 'date',
value: dateValue value: '1982-03-13'
}); });
widget.ngOnInit(); widget.ngOnInit();