From b7f6d7f466ec38e46b10ae5d16191e316e1c3aa5 Mon Sep 17 00:00:00 2001 From: Will Abson Date: Fri, 25 Nov 2016 13:46:32 +0000 Subject: [PATCH] Fix validation of number field values Refs #1149 --- .../widgets/core/form-field-validator.spec.ts | 21 +++++++++++++++++++ .../widgets/core/form-field-validator.ts | 3 ++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.spec.ts index 3049242d9b..245fdf1b6a 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.spec.ts @@ -158,6 +158,9 @@ describe('FormFieldValidator', () => { expect(NumberFieldValidator.isNumber('1')).toBeTruthy(); expect(NumberFieldValidator.isNumber('1.0')).toBeTruthy(); expect(NumberFieldValidator.isNumber('-1')).toBeTruthy(); + expect(NumberFieldValidator.isNumber(1)).toBeTruthy(); + expect(NumberFieldValidator.isNumber(0)).toBeTruthy(); + expect(NumberFieldValidator.isNumber(-1)).toBeTruthy(); }); it('should not verify number', () => { @@ -177,6 +180,24 @@ describe('FormFieldValidator', () => { expect(validator.validate(field)).toBeTruthy(); }); + it('should allow number value', () => { + let field = new FormFieldModel(new FormModel(), { + type: FormFieldTypes.NUMBER, + value: 44 + }); + + expect(validator.validate(field)).toBeTruthy(); + }); + + it('should allow zero number value', () => { + let field = new FormFieldModel(new FormModel(), { + type: FormFieldTypes.NUMBER, + value: 0 + }); + + expect(validator.validate(field)).toBeTruthy(); + }); + it('should fail for wrong number value', () => { let field = new FormFieldModel(new FormModel(), { type: FormFieldTypes.NUMBER, diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts index 843e84aaec..8b6ae005e8 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts @@ -106,11 +106,12 @@ export class NumberFieldValidator implements FormFieldValidator { field.value === '') { return true; } + let valueStr = '' + field.value; let pattern = new RegExp(/^-?\d+$/); if (field.enableFractions) { pattern = new RegExp(/^-?[0-9]+(\.[0-9]{1,2})?$/); } - if (field.value.match(pattern)) { + if (valueStr.match(pattern)) { return true; } field.validationSummary = 'Incorrect number format';