File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
packages/react-form-renderer/src Expand file tree Collapse file tree 2 files changed +21
-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,18 @@ 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 ( '.' ) ) {
27+ return false ;
28+ }
29+
30+ return canBeConvertedToNumber ( value ) ;
31+ } ;
32+
2133/**
2234 * Changes the value type
2335 * @param {FieldDataTypes } dataType type for value conversion
@@ -28,7 +40,7 @@ const convertType = (dataType, value) => {
2840 case dataTypes . INTEGER :
2941 return canBeConvertedToNumber ( value ) ? parseInt ( value ) : value ;
3042 case dataTypes . FLOAT :
31- return canBeConvertedToNumber ( value ) ? parseFloat ( value ) : value ;
43+ return canBeConvertedToFloat ( value ) ? parseFloat ( value ) : value ;
3244 case dataTypes . NUMBER :
3345 return canBeConvertedToNumber ( value ) ? Number ( value ) : value ;
3446 case dataTypes . BOOLEAN :
You can’t perform that action at this time.
0 commit comments