File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
packages/react-form-renderer/src Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -92,6 +92,14 @@ describe('data types', () => {
9292 it ( 'converts a negative integer' , ( ) => {
9393 expect ( convertType ( dataTypes . INTEGER , '-12132' ) ) . toEqual ( - 12132 ) ;
9494 } ) ;
95+
96+ it ( 'converts a floating number with nothing preceding decimal' , ( ) => {
97+ expect ( convertType ( dataTypes . FLOAT , '123.' ) ) . toEqual ( '123.' ) ;
98+ } ) ;
99+
100+ it ( 'converts a floating number' , ( ) => {
101+ expect ( convertType ( dataTypes . FLOAT , '123.0' ) ) . toEqual ( 123.0 ) ;
102+ } ) ;
95103 } ) ;
96104 } ) ;
97105} ) ;
Original file line number Diff line number Diff line change @@ -18,6 +18,15 @@ const castToBoolean = (value) => {
1818 */
1919const canBeConvertedToNumber = ( value ) => ! isNaN ( Number ( value ) ) && value !== '' ;
2020
21+ /**
22+ * Check if the value can be converted to float
23+ * @param {Any } value value to be checked
24+ */
25+ const canBeConvertedToFloat = ( value ) => {
26+ if ( typeof value == 'string' && value . endsWith ( '.' ) ) return false ;
27+ return canBeConvertedToNumber ( value ) ;
28+ } ;
29+
2130/**
2231 * Changes the value type
2332 * @param {FieldDataTypes } dataType type for value conversion
@@ -28,7 +37,7 @@ const convertType = (dataType, value) => {
2837 case dataTypes . INTEGER :
2938 return canBeConvertedToNumber ( value ) ? parseInt ( value ) : value ;
3039 case dataTypes . FLOAT :
31- return canBeConvertedToNumber ( value ) ? parseFloat ( value ) : value ;
40+ return canBeConvertedToFloat ( value ) ? parseFloat ( value ) : value ;
3241 case dataTypes . NUMBER :
3342 return canBeConvertedToNumber ( value ) ? Number ( value ) : value ;
3443 case dataTypes . BOOLEAN :
You can’t perform that action at this time.
0 commit comments